.pm-shell{max-width:1280px;margin:0 auto;padding:1.2rem 1.25rem 5rem}
.pm-nav{display:flex;gap:.9rem;flex-wrap:wrap;align-items:center;margin-bottom:1.8rem}
.pm-head{max-width:900px;margin:1.5rem 0 2rem}
.pm-head h1{max-width:18ch}
.pm-lede{font-size:clamp(1.08rem,2vw,1.35rem);line-height:1.55;max-width:72ch}
.pm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0 2.5rem}
.pm-card,.pm-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem}
.pm-card{display:flex;flex-direction:column;gap:.65rem;color:inherit;text-decoration:none}
.pm-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.pm-card strong{font-size:1.08rem}.pm-card p{margin:0;color:var(--muted)}
.pm-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin:1rem 0 1.5rem}
.pm-stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem}
.pm-stat strong{display:block;color:var(--accent);font-size:1.45rem}.pm-stat span{font-size:.85rem;color:var(--muted)}
.pm-section{max-width:960px;margin:2.5rem 0}.pm-section.wide{max-width:none}
.pm-callout{border-left:4px solid var(--accent);padding:.8rem 1rem;background:var(--panel);border-radius:0 var(--radius) var(--radius) 0}
.pm-callout.warning{border-left-color:#ad6b00}
.pm-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}
.pm-table{border-collapse:collapse;width:100%;min-width:720px}
.pm-table th,.pm-table td{text-align:left;vertical-align:top;padding:.65rem .7rem;border-bottom:1px solid var(--line)}
.pm-table th{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.pm-controls{display:flex;gap:.7rem;flex-wrap:wrap;align-items:end;margin:1rem 0}
.pm-controls label{display:grid;gap:.25rem;font-size:.82rem;color:var(--muted)}
.pm-controls input,.pm-controls select{min-height:2.6rem;padding:.5rem .65rem;border:1px solid var(--line);border-radius:.45rem;background:var(--panel);color:var(--ink)}
.pm-map-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:.85rem;align-items:stretch}
.pm-map-stage{position:relative;min-height:680px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.pm-map-stage canvas{display:block;width:100%;height:680px;touch-action:manipulation}
.pm-map-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:1rem;max-height:680px;overflow:auto}
.pm-map-panel h2{font-size:1.15rem;margin-top:0}.pm-map-panel ul{padding-left:1.15rem}
.pm-key{display:flex;gap:.8rem;flex-wrap:wrap;font-size:.78rem;color:var(--muted);margin:.6rem 0}
.pm-key i{display:inline-block;width:.75rem;height:.75rem;border-radius:50%;vertical-align:-.08rem;margin-right:.25rem;border:1px solid currentColor}
.pm-image-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:.5rem}
.pm-image-wrap img{display:block;width:100%;height:auto;min-width:720px}
.pm-badge{display:inline-block;padding:.15rem .42rem;border-radius:999px;background:var(--wash);font-size:.75rem;white-space:nowrap}
.pm-badge.warn{background:#f5e7c8;color:#704400}.pm-badge.good{background:#dcebdc;color:#245226}
.pm-small{font-size:.84rem;color:var(--muted)}
.pm-link-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding:0;list-style:none}
.pm-link-list a{display:block;padding:.55rem .65rem;border:1px solid var(--line);border-radius:.45rem;overflow-wrap:anywhere}
.pm-hidden{display:none!important}
@media(max-width:900px){.pm-grid{grid-template-columns:1fr}.pm-stats{grid-template-columns:1fr 1fr}.pm-map-layout{grid-template-columns:1fr}.pm-map-panel{max-height:none}.pm-map-stage,.pm-map-stage canvas{min-height:560px;height:560px}}
@media(max-width:560px){.pm-shell{padding-inline:.75rem}.pm-stats{grid-template-columns:1fr 1fr}.pm-link-list{grid-template-columns:1fr}.pm-map-stage,.pm-map-stage canvas{min-height:480px;height:480px}}
