/* Tactical replay map. Callout editing keeps its existing canvas styles. */
.pm-panel{overflow:hidden}
.pm-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.pm-heading h2{margin:3px 0 5px;font-size:22px}
.pm-heading p{margin:0;max-width:720px;font-size:13px;color:var(--muted)}
.pm-eyebrow{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pm-badge{flex:none;padding:6px 10px;border:1px solid var(--line);border-radius:7px;font-size:11px;color:var(--ink-2)}
.pm-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;padding:12px;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;margin-bottom:12px}
.pm-filters label.f{width:auto;flex:1;min-width:130px;margin:0}
.pm-filters select{width:100%;min-height:38px;padding:8px 10px}
.pm-top{margin:0 0 10px;align-items:center;gap:10px}
.pm-top .seg button,.pm-modebar button{min-height:36px;padding:7px 14px;font-size:12px}
.pm-count{padding:0;border:0;background:none;display:flex;align-items:baseline;gap:7px}
.pm-count b{font:600 24px var(--body);font-variant-numeric:tabular-nums}
.pm-count span{font-size:12px}
.pm-modebar{display:flex;gap:6px;flex-wrap:wrap}
.pm-modebar button{border-radius:7px;border:1px solid var(--line);background:transparent;color:var(--muted)}
.pm-modebar button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.pm-body{display:block}
.pm-panel .pm-map{padding:0;overflow:hidden;border-radius:12px;background:#101925;border:1px solid #283747;color:#e3edf7}
.pm-mapbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid #283747;background:#141f2c;flex-wrap:wrap}
.pm-mapname{font-size:12px;font-weight:600;letter-spacing:.03em}
.pm-mapname small{color:#90a5ba;font-weight:400;margin-left:8px}
.pm-tools{display:flex;gap:5px;align-items:center;flex-wrap:wrap;min-width:0}
.pm-tools button{min-height:30px;min-width:32px;padding:4px 8px;border-radius:5px;border:1px solid #35465a;background:#1b2a3b;color:#d9e8f5;font-size:12px;white-space:nowrap}
.pm-tools button[aria-pressed="true"]{background:#2b4860;border-color:#5b829f}
.pm-tools button:disabled{opacity:.4;cursor:default}
.pm-zoom{min-width:42px;text-align:center;font-size:11px;color:#9fb4c8;font-variant-numeric:tabular-nums}
.pm-panel .pm-stage{width:100%;max-height:760px;overflow:hidden;touch-action:none;cursor:grab;background:radial-gradient(ellipse at 50% 35%,#192b3c,#101925 80%)}
.pm-panel .pm-stage:active{cursor:grabbing}
.pm-panel .pm-stage.pm-placing{cursor:crosshair;outline:2px solid #ffc76b;outline-offset:-2px}
.pm-panel .pm-stage svg{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;user-select:none}
.pm-floor-svg{opacity:.75;pointer-events:none}
.pm-grid{fill:none;stroke:#a3bfd5;stroke-opacity:.1;stroke-width:.6;vector-effect:non-scaling-stroke;pointer-events:none}
.pm-grid.major{stroke-opacity:.2;stroke-width:1}
.pm-cell{pointer-events:none}
.pm-outline{fill:#9cb7cb;opacity:.1}
.pm-room{font:500 11px var(--body);fill:#a6bed0;paint-order:stroke;stroke:#101925;stroke-width:3;stroke-linejoin:round;text-anchor:middle;pointer-events:none}
.pm-dot{stroke:#101925;stroke-width:2;cursor:pointer;vector-effect:non-scaling-stroke}
.pm-dot.d{fill:#ff8278}.pm-dot.k{fill:#50d5bd}
.pm-dot.o{stroke:#ffe4a0;stroke-width:2}.pm-dot.on{stroke:#fff;stroke-width:3}
.pm-hit{fill:transparent;stroke:none;cursor:pointer}
.pm-opponent{fill:#ffc76b;stroke:#101925;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}
.pm-link{stroke:#ffc76b;stroke-width:1.6;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;pointer-events:none}
.pm-reference{fill:#ffc76b;stroke:#101925;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}
.pm-mapfoot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 14px;border-top:1px solid #283747;color:#a9bdcf;font-size:11px}
.pm-legend{display:flex;gap:15px;align-items:center;flex-wrap:wrap}
.pm-key{display:inline-flex;align-items:center;gap:6px}
.pm-key i{width:9px;height:9px;border-radius:50%;background:#50d5bd;display:inline-block}
.pm-key i.death{background:#ff8278}.pm-key i.enemy{border-radius:1px;transform:rotate(45deg);background:#ffc76b}
.pm-ramp{width:72px;height:6px;border-radius:9px;background:linear-gradient(90deg,#1d465b,#34c5ba,#b5f3cc);display:inline-block;margin:0 5px}
.pm-scale{display:flex;align-items:center;gap:8px;color:#c2d7e8}
.pm-scale i{display:inline-block;height:6px;border:1px solid #c2d7e8;border-top:0}
.pm-explain{font-size:12px;color:var(--muted);margin:10px 0 0;line-height:1.6}
.pm-detail{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--bg-2);font-size:13px}
.pm-detail p{margin:4px 0 0;color:var(--muted);font-size:12px}
.pm-detail button{font-size:12px;min-height:34px}
.pm-empty{pointer-events:none;color:#bdcfe0;background:#142131dd;padding:10px 16px;border-radius:6px;left:15%;right:15%;top:45%}
.pm-calibration{margin-top:12px;padding:14px 16px;border:1px solid var(--line-2);border-radius:10px;background:var(--bg-2)}
.pm-calibration h3{font-size:14px;margin:0 0 6px}.pm-calibration p{font-size:12px;color:var(--muted);margin:5px 0 12px;line-height:1.6}
.pm-refs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.pm-refs button{font-size:11px;min-height:28px;padding:4px 8px}
.pm-error{color:var(--bad)!important}.pm-calibration .row{align-items:center;gap:8px;font-size:12px}
@media(max-width:700px){.pm-heading{gap:8px}.pm-heading h2{font-size:19px}.pm-badge{display:none}.pm-filters{padding:10px}.pm-filters label.f{flex-basis:42%;min-width:110px}.pm-top{align-items:flex-start}.pm-count b{font-size:20px}.pm-modebar{gap:4px}.pm-modebar button{padding:7px 10px}.pm-mapbar{padding:8px}.pm-mapname small{display:none}.pm-tools{gap:3px}.pm-tools button{padding:4px 6px}.pm-detail{grid-template-columns:1fr}.pm-room{font-size:10px}}
