.pmap{flex-direction:column;gap:14px;display:flex}.pmap-bar{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.pmap-stats{flex-wrap:wrap;gap:6px;display:flex}.pmap-stat{border-radius:var(--radius-control-sm);border:1px solid var(--border);background:var(--surface);height:30px;color:var(--ink-2);white-space:nowrap;align-items:center;gap:7px;padding:0 11px;font-size:12.5px;transition:border-color .15s,color .15s;display:inline-flex}.pmap-stat:hover{border-color:var(--line-strong);color:var(--foreground)}.pmap-stat b{font:600 12px var(--font-mono), monospace;color:var(--foreground);font-variant-numeric:tabular-nums}.pmap-legend{color:var(--ink-3);flex-wrap:wrap;gap:6px 14px;margin-left:auto;font-size:12px;display:flex}.pmap-legend>span{align-items:center;gap:6px;display:inline-flex}.pmap-legend__line{border-top:2px dashed var(--brand-red);width:18px}.pmap-legend__line--ok{border-top-color:var(--ok)}.pmap-dot{background:var(--spot);width:7px;height:7px;box-shadow:0 0 0 3px var(--spot-soft);border-radius:50%;flex:none}.pmap-canvas{--pmap-bg:color-mix(in oklab, var(--surface-2) 45%, var(--background));border-radius:var(--radius-panel,16px);border:1px solid var(--border);background-color:var(--pmap-bg);background-image:radial-gradient(color-mix(in oklab, var(--line-strong) 70%, transparent) 1px, transparent 1.2px);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;outline:none;height:min(640px,72vh);min-height:420px;position:relative;overflow:hidden}.pmap-canvas:focus-visible{box-shadow:0 0 0 2px var(--brand-red)}.pmap-canvas.is-panning{cursor:grabbing}.pmap-world{transform-origin:0 0;will-change:transform;position:absolute;top:0;left:0}.pmap-edges{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.pmap-e{fill:none;stroke:var(--line-strong);stroke-width:1.5px;transition:stroke .25s,opacity .25s,stroke-width .25s}.pmap-e.is-near{stroke:var(--ink-3);stroke-width:2.2px}.pmap-canvas.has-sel .pmap-e{opacity:.1}.pmap-canvas.has-sel .pmap-e:is(.is-anc,.is-desc){opacity:1;stroke-width:2.4px;stroke-dasharray:7 6;animation:.8s linear infinite pmap-flow}.pmap-canvas.has-sel .pmap-e.is-anc{stroke:var(--brand-red)}.pmap-canvas.has-sel .pmap-e.is-desc{stroke:var(--ok)}@keyframes pmap-flow{to{stroke-dashoffset:-13px}}.pmap-node{background:var(--surface);border:1px solid var(--line-strong);text-align:left;color:var(--foreground);border-radius:10px;flex-direction:column;justify-content:center;gap:4px;padding:0 10px 0 12px;transition:opacity .25s,border-color .2s,box-shadow .25s,transform .25s cubic-bezier(.2,.7,.2,1);display:flex;position:absolute;box-shadow:0 1px 2px #1413170f}.pmap-node:hover{border-color:var(--ink-3);box-shadow:var(--shadow);z-index:3}.pmap-node:focus-visible{outline:2px solid var(--brand-red);outline-offset:2px}.pmap-node__name{white-space:nowrap;align-items:center;gap:6px;min-width:0;font-size:13px;font-weight:600;line-height:1.2;display:flex}.pmap-node__name>span{text-overflow:ellipsis;overflow:hidden}.pmap-node__meta{align-items:center;gap:8px;min-width:0;display:flex}.pmap-node__cat{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-3);font-size:11px;overflow:hidden}.pmap-node__more{font:500 10.5px/1 var(--font-mono), monospace;color:var(--ink-3);font-variant-numeric:tabular-nums;flex:none;margin-left:auto}.pmap-node.is-miss{opacity:.28}.pmap-node.is-match{border-color:var(--spot);box-shadow:0 0 0 3px var(--spot-soft), var(--shadow)}.pmap-canvas.has-sel .pmap-node:not(.is-lin){opacity:.2}.pmap-canvas.has-sel .pmap-node.is-anc{border-color:color-mix(in oklab, var(--brand-red) 60%, var(--line-strong))}.pmap-canvas.has-sel .pmap-node.is-desc{border-color:color-mix(in oklab, var(--ok) 60%, var(--line-strong))}.pmap-node.is-sel{z-index:4;border-color:var(--brand-red);box-shadow:0 0 0 4px var(--brand-red-soft), var(--shadow-lg);transform:scale(1.05)}.pmap .diff--xs{color:var(--ink-3);gap:5px;font-size:11px;font-weight:500}.pmap .diff--xs .diff__bars{gap:2px}.pmap .diff--xs .diff__bars i{border-radius:2px;width:8px;height:4px}.pmap-treelabel{white-space:nowrap;align-items:center;gap:8px;display:flex;position:absolute}.pmap-cols{z-index:5;pointer-events:none;background:linear-gradient(180deg, var(--pmap-bg) 55%, transparent);height:40px;position:absolute;inset:0 0 auto}.pmap-cols>div{white-space:nowrap;align-items:center;gap:7px;display:flex;position:absolute;top:12px}.pmap-cols .count{padding:3px 6px;font-size:10.5px}.pmap-ctrls{z-index:6;left:12px;bottom:calc(12px + var(--pmap-sheet,0px));border-radius:var(--radius-control-lg);background:var(--float-bg);border:1px solid var(--border);box-shadow:var(--shadow);cursor:default;align-items:center;gap:2px;padding:4px;transition:bottom .32s cubic-bezier(.2,.7,.2,1);display:flex;position:absolute}.pmap-ibtn{border-radius:var(--radius-control-sm);width:32px;height:32px;color:var(--ink-2);place-items:center;transition:background .15s,color .15s;display:inline-grid}.pmap-ibtn:hover{background:var(--surface-2);color:var(--foreground)}.pmap-ibtn svg{width:17px;height:17px}.pmap-zoom{text-align:center;min-width:46px;font:500 11.5px var(--font-mono), monospace;color:var(--ink-2);font-variant-numeric:tabular-nums}.pmap-hint{z-index:6;color:var(--ink-3);background:var(--float-bg);border:1px solid var(--border);pointer-events:none;border-radius:9px;padding:6px 10px;font-size:12px;transition:opacity .2s;position:absolute;bottom:12px;right:12px}.pmap-canvas.has-sel .pmap-hint{opacity:0}.pmap-panel{z-index:8;border-radius:var(--radius-card);background:var(--float-bg);border:1px solid var(--border);width:340px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:default;-webkit-user-select:text;user-select:text;touch-action:pan-y;flex-direction:column;transition:transform .32s cubic-bezier(.2,.7,.2,1);display:flex;position:absolute;top:12px;bottom:12px;right:12px;transform:translate(calc(100% + 24px))}.pmap-panel.is-open{transform:none}.pmap-panel.is-min{bottom:auto}.pmap-panel__grab{display:none}.pmap-panel__scroll{flex-direction:column;gap:18px;padding:16px 18px 18px;display:flex;overflow-y:auto}.pmap-panel__top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.pmap-panel.is-min .pmap-panel__top{cursor:pointer}.pmap-panel__title{flex-direction:column;gap:8px;min-width:0;display:flex}.pmap-panel__btns{flex:none;gap:2px;margin:-4px -6px 0 0;display:flex}.pmap-panel__min svg{transition:transform .25s cubic-bezier(.2,.7,.2,1);transform:rotate(180deg)}.pmap-panel.is-min .pmap-panel__min svg{transform:none}.pmap-panel__sum{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12.5px;display:none}.pmap-panel.is-min .pmap-panel__sum{display:block}.pmap-panel.is-min .pmap-panel__scroll>:not(.pmap-panel__top),.pmap-panel.is-min .pmap-panel__actions{display:none}.pmap-nums{border:1px solid var(--border);background:var(--border);border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.pmap-nums>div{background:var(--surface);flex-direction:column;gap:2px;padding:8px 10px;display:flex}.pmap-nums b{font:600 18px/1.1 var(--font-display), sans-serif;font-variant-numeric:tabular-nums}.pmap-nums span{color:var(--ink-3);font-size:11.5px}.pmap-sec{flex-direction:column;gap:8px;display:flex}.pmap-sec__h{justify-content:space-between;align-items:center;display:flex}.pmap-list{flex-direction:column;gap:4px;display:flex}.pmap-row{background:var(--surface-2);text-align:left;border:1px solid #0000;border-radius:9px;align-items:center;gap:10px;width:100%;padding:7px 9px;transition:border-color .15s,background .15s;display:flex}.pmap-row:hover{border-color:var(--line-strong);background:var(--surface)}.pmap-row__n{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.pmap-row__k{background:var(--brand-red);border-radius:50%;flex:none;width:8px;height:8px}.pmap-row__k--ok{background:var(--ok)}.pmap-empty{color:var(--ink-3);font-size:13px}.pmap-path>li{padding-left:22px;position:relative}.pmap-path>li:before{content:"";background:var(--border);width:2px;position:absolute;top:0;bottom:0;left:6px}.pmap-path>li:first-child:before{top:50%}.pmap-path>li:last-child:before{bottom:50%}.pmap-path>li:after{content:"";background:var(--surface);border:2px solid var(--line-strong);border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:2px;translate:0 -50%}.pmap-path>li.is-first:after{background:var(--spot);border-color:var(--spot)}.pmap-path>li.is-cur:after{background:var(--brand-red);border-color:var(--brand-red);box-shadow:0 0 0 3px var(--brand-red-soft)}.pmap-path button{text-align:left;border-radius:8px;justify-content:space-between;gap:8px;width:100%;padding:6px 8px;font-size:13px;display:flex}.pmap-path button:hover{background:var(--surface-2)}.pmap-path li.is-cur button{font-weight:700}.pmap-path small{font:500 10.5px var(--font-mono), monospace;color:var(--ink-3)}.pmap-panel__actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;padding:12px 18px 16px;display:flex}.pmap-panel__actions>*{flex:auto}.pmap-loose{border-radius:var(--radius-panel,16px);border:1px dashed var(--line-strong);flex-direction:column;gap:12px;padding:18px;display:flex}.pmap-loose.is-flash{animation:1.4s ease-out pmap-flash}@keyframes pmap-flash{0%,30%{border-color:var(--spot);background:var(--spot-soft)}}.pmap-loose__list{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:8px;display:grid}.pmap-loose__row{background:var(--surface-2);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:10px 12px;transition:opacity .2s;display:flex}.pmap-loose__row.is-miss{opacity:.35}.pmap-loose__row b{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;overflow:hidden}.pmap-new{font:600 9.5px/1 var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-red-ink);background:var(--brand-red-soft);border-radius:5px;padding:3px 5px}@media (max-width:720px){.pmap-canvas{height:70svh;min-height:440px;margin-inline:calc(-1 * var(--page-gutter,16px));border-inline:0;border-radius:0}.pmap-stats{scrollbar-width:none;margin-inline:calc(-1 * var(--page-gutter,16px));padding-inline:var(--page-gutter,16px);flex-wrap:nowrap;overflow-x:auto}.pmap-stats::-webkit-scrollbar{display:none}.pmap-stats>*{flex:none}.pmap-legend{gap:6px 12px;margin-left:0;font-size:11.5px}.pmap-hint,.pmap-zoom{display:none}.pmap-ctrls{left:8px;bottom:calc(8px + var(--pmap-sheet,0px))}.pmap-ibtn{width:36px;height:36px}.pmap-cols>div{top:10px}.pmap-panel{width:auto;max-height:78%;padding-bottom:env(safe-area-inset-bottom,0px);border-bottom:0;border-radius:18px 18px 0 0;inset:auto 0 0;transform:translateY(calc(100% + 20px))}.pmap-panel.is-min{bottom:0}.pmap-panel__grab{cursor:grab;touch-action:none;flex:none;width:100%;height:22px;display:block;position:relative}.pmap-panel__grab:after{content:"";background:var(--line-strong);border-radius:2px;width:40px;height:4px;position:absolute;top:8px;left:50%;translate:-50%}.pmap-panel__top{touch-action:none}.pmap-panel__scroll{gap:16px;padding:2px 16px 16px}.pmap-panel.is-min .pmap-panel__scroll{padding-bottom:14px}.pmap-panel__min svg{transform:none}.pmap-panel.is-min .pmap-panel__min svg{transform:rotate(180deg)}.pmap-panel__actions{padding:10px 16px 14px}.pmap-row{min-height:44px}.pmap-path button{align-items:center;min-height:40px}.pmap-loose{padding:14px}}@media (prefers-reduced-motion:reduce){.pmap-canvas.has-sel .pmap-e:is(.is-anc,.is-desc),.pmap-loose.is-flash{animation:none}.pmap-panel,.pmap-node,.pmap-ctrls{transition:none}}
