.pd-map {--pd-map-ink:var(--theme-text);--pd-map-muted:var(--theme-muted);--pd-map-border:var(--theme-line);--pd-map-surface:var(--theme-panel);--pd-map-soft:var(--theme-subtle);--pd-map-action:var(--theme-primary);position:relative;display:grid;gap:1rem;min-width:0;color:var(--pd-map-ink);font-family:inherit;
}
.pd-map__toolbar {display:grid;grid-template-columns:minmax(12rem, 1fr) minmax(11rem, .65fr) auto;gap:.75rem;align-items:end;
}
.pd-map__field {display:grid;gap:.35rem;min-width:0; }
.pd-map__field label {font-size:.8rem;font-weight:800;color:var(--pd-map-muted); }
.pd-map__field input,
.pd-map__field select {width:100%;min-height:2.75rem;padding:.62rem .75rem;border:1px solid var(--pd-map-border);border-radius:.7rem;background:var(--theme-panel);color:var(--pd-map-ink);font:inherit;
}
[data-map-suggestions] {display:flex;flex-wrap:wrap;gap:.35rem;min-height:0;
}
.pd-map__suggestion-label,
.pd-map__suggestion-empty {flex-basis:100%;color:var(--pd-map-muted);font-size:.76rem; }
.pd-map__suggestion {padding:.32rem .5rem;border:1px solid var(--pd-map-border);border-radius:.55rem;background:var(--theme-panel);color:var(--pd-map-ink);font:inherit;font-size:.78rem;font-weight:750;cursor:pointer;
}
.pd-map__suggestion small {color:var(--pd-map-muted);font-weight:600; }
.pd-map__suggestion:hover {border-color:var(--pd-map-action);background:var(--theme-subtle); }
.pd-map__actions {display:flex;flex-wrap:wrap;gap:.5rem; }
.pd-map__button {min-height:2.75rem;padding:.58rem .8rem;border:1px solid var(--pd-map-action);border-radius:.7rem;background:var(--theme-panel);color:var(--pd-map-action);font:inherit;font-weight:800;cursor:pointer;
}
.pd-map__button:hover {background:var(--theme-subtle); }
.pd-map__button:focus-visible,
.pd-map__field input:focus-visible,
.pd-map__field select:focus-visible,
.pd-map__shape:focus-visible,
.pd-map__dialog-close:focus-visible {outline:3px solid var(--theme-focus);outline-offset:2px;
}
.pd-map__canvas-shell {position:relative;min-height:31rem;overflow:hidden;border:1px solid var(--pd-map-border);border-radius:1rem;background:linear-gradient(160deg, var(--theme-subtle), var(--theme-subtle));box-shadow:0 .7rem 1.8rem color-mix(in srgb,var(--theme-shadow-colour) 8.0%,transparent);
}
.pd-map__canvas {display:block;width:100%;height:min(68vh, 43rem);min-height:31rem;touch-action:none;cursor:grab;
}
.pd-map__canvas.is-dragging {cursor:grabbing; }
.pd-map__shape {stroke:var(--theme-line);stroke-width:.65;vector-effect:non-scaling-stroke;transition:opacity .14s ease, stroke-width .14s ease;cursor:pointer;
}
.pd-map__shape:hover,
.pd-map__shape.is-selected {stroke:var(--theme-primary);stroke-width:2.2;opacity:1; }
.pd-map__shape.is-muted {opacity:.16; }
.pd-map__shape.is-filtered-out {display:none; }
.pd-map__state {position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:2rem;background:color-mix(in srgb,var(--theme-subtle) 94.0%,transparent);text-align:center;
}
.pd-map__state[hidden] {display:none; }
.pd-map__state-card {max-width:34rem; }
.pd-map__state h3 {margin:0 0 .5rem;font-size:1.25rem; }
.pd-map__state p {margin:0 0 1rem;color:var(--pd-map-muted);line-height:1.55; }
.pd-map__spinner {width:2rem;height:2rem;margin:0 auto 1rem;border:.25rem solid var(--theme-line);border-top-color:var(--pd-map-action);border-radius:50%;animation:pd-map-spin .8s linear infinite;
}
@keyframes pd-map-spin { to {transform:rotate(360deg); } }
.pd-map__tooltip {position:fixed;z-index:10000;max-width:20rem;padding:.48rem .65rem;border-radius:.55rem;background:var(--theme-primary);color:var(--theme-inverse);box-shadow:0 .45rem 1.1rem color-mix(in srgb,var(--theme-shadow-colour) 24.0%,transparent);font-size:.82rem;line-height:1.35;pointer-events:none;
}
.pd-map__tooltip[hidden] {display:none; }
.pd-map__legend {display:flex;flex-wrap:wrap;gap:.55rem 1rem;align-items:center;padding:.85rem 1rem;border:1px solid var(--pd-map-border);border-radius:.85rem;background:var(--pd-map-surface);
}
.pd-map__legend-title {flex-basis:100%;font-weight:900; }
.pd-map__legend-item {display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem; }
.pd-map__legend-swatch {width:1rem;height:1rem;border:1px solid color-mix(in srgb,var(--theme-line) 25.0%,transparent);border-radius:.25rem;background:var(--legend-color); }
.pd-map__summary {margin:0;color:var(--pd-map-muted);font-size:.86rem; }
.pd-map__dialog {width:min(44rem, calc(100vw - 2rem));max-height:min(42rem, calc(100vh - 2rem));margin:auto;padding:0;overflow:hidden;border:0;border-radius:1rem;color:var(--pd-map-ink);box-shadow:0 1.4rem 4rem color-mix(in srgb,var(--theme-shadow-colour) 35.0%,transparent);
}
.pd-map__dialog::backdrop {background:color-mix(in srgb,var(--theme-overlay) 58.0%,transparent); }
.pd-map__dialog-head {display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid var(--pd-map-border); }
.pd-map__dialog-head h3 {margin:0;font-size:1.25rem; }
.pd-map__dialog-close {width:2.5rem;height:2.5rem;border:0;border-radius:50%;background:var(--theme-subtle);color:var(--pd-map-ink);font-size:1.35rem;cursor:pointer; }
.pd-map__dialog-body {max-height:calc(100vh - 10rem);padding:1.1rem;overflow:auto;overscroll-behavior:contain; }
.pd-map__facts {display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:.75rem;margin:0 0 1rem; }
.pd-map__fact {padding:.8rem;border-radius:.75rem;background:var(--pd-map-soft); }
.pd-map__fact dt {color:var(--pd-map-muted);font-size:.76rem;font-weight:800; }
.pd-map__fact dd {margin:.2rem 0 0;font-weight:850; }
.pd-map__profile-link {display:inline-flex;margin-top:.5rem;padding:.68rem .9rem;border-radius:.7rem;background:var(--pd-map-action);color:var(--theme-inverse);font-weight:850;text-decoration:none; }
.pd-map:fullscreen {padding:1rem;background:var(--theme-subtle);overflow:auto; }
.pd-map:fullscreen .pd-map__canvas {height:calc(100vh - 12rem); }
@media (max-width: 760px) {
  .pd-map__toolbar {grid-template-columns:1fr; }
  .pd-map__actions {justify-content:stretch; }
  .pd-map__actions .pd-map__button {flex:1 1 8rem; }
  .pd-map__canvas-shell, .pd-map__canvas {min-height:25rem; }
  .pd-map__facts {grid-template-columns:1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .pd-map__shape {transition:none; }
  .pd-map__spinner {animation-duration:1.8s; }
}
@media print {
  .pd-map__toolbar, .pd-map__tooltip, .pd-map__dialog {display:none !important; }
  .pd-map__canvas-shell {min-height:20rem;box-shadow:none; }
  .pd-map__canvas {height:20rem;min-height:20rem; }
}
