pathfinder-bench {display:block;max-width:900px;color:var(--ink);font:15px/1.48 var(--sans,"Segoe UI",sans-serif)}
.pf-bench{border:1px solid var(--rule);border-radius:9px;overflow:hidden;background:var(--panel)}
.pf-instrument{padding:17px clamp(14px,4%,32px) 14px;color:var(--stage-ink);background:var(--stage)}
.pf-title,.pf-legend,.pf-controls,.pf-buttons{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pf-title{justify-content:space-between}.pf-title h3{margin:0;font-size:16px;font-weight:600}.pf-title span,.pf-legend{font:12px/1.5 var(--mono,Consolas,monospace);color:var(--stage-muted)}
.pf-map{display:block;width:100%;max-height:365px;margin:8px auto;background:radial-gradient(#91878355 1px,transparent 1px) center/14px 14px}
.pf-map line{stroke:#857b76;stroke-width:3;stroke-linecap:round}.pf-map rect{fill:#1d1b1b}
.pf-map text{font:12px var(--mono,Consolas,monospace);text-anchor:middle;fill:var(--stage-ink)}
.pf-route-trace {
  fill: none;
  stroke: #ffb478;
  stroke-width: 5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pf-on-route rect { stroke: #c58659; stroke-width: 1; }
.pf-step-cue { fill: none; stroke: #cbe4b4; stroke-width: 1.8; }
.pf-map .pf-endpoint { fill: var(--stage-ink); font-size: 10px; }
@media (prefers-reduced-motion: no-preference) {
  .pf-route-trace {
    stroke-dasharray: 1;
    animation: pf-draw-route 540ms ease-out;
  }
  .pf-step-cue { animation: pf-settle-stop 250ms ease-out; }
}
@keyframes pf-draw-route { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes pf-settle-stop { from { r: 10px; opacity: .25; } to { r: 14px; opacity: 1; } }
.pf-node .pf-core{fill:#1d1b1b;stroke:var(--stage-muted);stroke-width:1.6}.pf-node .pf-halo{fill:none;stroke:none}
.pf-frontier .pf-halo{stroke:#e6c286;stroke-dasharray:3 3}.pf-settled .pf-core{fill:#cbe4b4;stroke:#cbe4b4}.pf-settled .pf-code{fill:#193927}
.pf-map .pf-stop{font:bold 11px var(--sans,"Segoe UI",sans-serif);paint-order:stroke;stroke:var(--stage);stroke-width:3px}
.pf-legend{gap:8px 18px}.pf-legend span{display:inline-flex;align-items:center;gap:7px}.pf-legend i{display:inline-block;width:10px;height:10px;border-radius:50%}
.pf-key-settled{background:#cbe4b4}.pf-key-frontier{border:1px dashed #e6c286}.pf-legend .pf-key-route{border-radius:0;width:17px;height:3px;background:#ffb478}
.pf-controls{padding:16px clamp(14px,4%,32px) 8px;align-items:end}.pf-controls label{display:grid;gap:3px;font-size:13px;font-weight:600}.pf-controls select,.pf-buttons button{border:1px solid var(--control-border);border-radius:4px;padding:7px 10px;min-height:44px;cursor:pointer;color:var(--ink);background:var(--paper)}
.pf-buttons{gap:6px}.pf-buttons [data-act="step"]{background:var(--action);color:var(--on-action);border-color:var(--action)}.pf-buttons [aria-disabled="true"]{opacity:.5;cursor:default}
.pf-bench :is(button,select,summary):focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.pf-result,.pf-bench details{margin:0;padding:5px clamp(14px,4%,32px) 12px;font-size:14px}.pf-bench details{color:var(--muted)}.pf-bench details p{margin:6px 0}.pf-bench summary{cursor:pointer;width:fit-content}
@media(max-width:500px){.pf-instrument{padding-inline:10px}.pf-title span,.pf-legend{font-size:11px}.pf-controls label{flex:1}.pf-controls{gap:8px}.pf-buttons{flex-basis:100%}.pf-map text{font-size:14px}.pf-map .pf-stop{font-size:13px}}
