.tp-panel{border:1px solid var(--pm-line, #292831);border-radius:10px;background:var(--surface-panel, #131318);min-width:0}.project-map-full .tp-panel{margin-top:16px}.project-map-full .pm-top{grid-template-columns:minmax(0,1fr)}.pm-row[data-hit]{cursor:default}.pm-row[data-hit]:hover{background:var(--pm-row-hover, #1a1921)}.tp-wrap{container:tp / inline-size;padding:0 8px}.tp-frame{--pw: var(--pw0);--ph: var(--ph0);--py: var(--py0);--h: var(--h0);position:relative;height:var(--h);overflow:hidden}.tp-pos{--x: var(--x0);--y: var(--y0);--t: var(--t0);--a: var(--a0);--d: var(--d0);--m: var(--m0);--l: var(--l0)}.tp-leaders>g{display:none}.tp-leaders>.tp-tier0{display:inline}@container tp (min-width: 270px){.project-map .tp-frame{--pw: var(--pw1);--ph: var(--ph1);--py: var(--py1);--h: var(--h1)}.project-map .tp-pos{--x: var(--x1);--y: var(--y1);--t: var(--t1);--a: var(--a1);--d: var(--d1);--m: var(--m1);--l: var(--l1)}.project-map .tp-leaders>:not(.tp-tier1){display:none}.project-map .tp-leaders>.tp-tier1{display:inline}}@container tp (min-width: 560px){.project-map-full .tp-frame{--pw: var(--pw2);--ph: var(--ph2);--py: var(--py2);--h: var(--h2)}.project-map-full .tp-pos{--x: var(--x2);--y: var(--y2);--t: var(--t2);--a: var(--a2);--d: var(--d2);--m: var(--m2);--l: var(--l2)}.project-map-full .tp-leaders>:not(.tp-tier2){display:none}.project-map-full .tp-leaders>.tp-tier2{display:inline}}@container tp (min-width: 900px){.project-map-full .tp-frame{--pw: var(--pw3);--ph: var(--ph3);--py: var(--py3);--h: var(--h3)}.project-map-full .tp-pos{--x: var(--x3);--y: var(--y3);--t: var(--t3);--a: var(--a3);--d: var(--d3);--m: var(--m3);--l: var(--l3)}.project-map-full .tp-leaders>:not(.tp-tier3){display:none}.project-map-full .tp-leaders>.tp-tier3{display:inline}}@container tp (min-width: 400px){.project-map-compact .tp-frame{--pw: var(--pw2);--ph: var(--ph2);--py: var(--py2);--h: var(--h2)}.project-map-compact .tp-pos{--x: var(--x2);--y: var(--y2);--t: var(--t2);--a: var(--a2);--d: var(--d2);--m: var(--m2);--l: var(--l2)}.project-map-compact .tp-leaders>:not(.tp-tier2){display:none}.project-map-compact .tp-leaders>.tp-tier2{display:inline}}.tp-svg{position:absolute;left:calc(50% - var(--pw) / 2);top:var(--py);width:var(--pw);height:var(--ph);overflow:visible;display:block}.tp-leaders{position:absolute;left:50%;top:0;width:1px;height:1px;overflow:visible;pointer-events:none}.tp-leaders line{stroke:color-mix(in srgb,var(--text-muted) 70%,transparent);stroke-width:1}.tp-overlay{position:absolute;inset:0;pointer-events:none}.tp-cell{outline:none;cursor:default}.tp-hull{stroke:color-mix(in srgb,var(--pc) 55%,transparent);stroke-width:1.2;vector-effect:non-scaling-stroke}.tp-cell.unassigned .tp-hull{stroke-dasharray:4 4}.tp-hatch{opacity:.08;pointer-events:none}.tp-hatch-ink{fill:#9a97a8}.tp-cell:focus-visible .tp-hull{stroke:var(--sel);stroke-width:2;stroke-dasharray:none}.tp-ribbon{vector-effect:non-scaling-stroke;stroke-linecap:round;pointer-events:none}.tp-dots{pointer-events:none}.tp-dot{fill:var(--pc)}.tp-dot.hollow{fill:var(--surface-panel, #131318);stroke:var(--pc);stroke-width:1.2;vector-effect:non-scaling-stroke}.tp-pos{position:absolute;left:calc(50% + var(--x));top:var(--y);transform:translate(var(--t));display:var(--d);white-space:nowrap;text-align:var(--a)}.tp-label{padding:3px 6px;border-radius:4px;background:#131318db;letter-spacing:0;pointer-events:auto}.tp-name{display:block;font-size:13px;line-height:16px;font-weight:600;color:var(--pt)}.tp-long{display:var(--l, inline)}.tp-label.unassigned .tp-name{text-decoration:underline dashed 1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--pt) 60%,transparent)}.tp-meta{display:var(--m, block);font-size:var(--fs-caption, 11px);line-height:14px;font-weight:400;color:var(--text-muted);font-variant-numeric:tabular-nums lining-nums}.tp-badge{transform:translate(-50%,-50%);min-width:20px;height:17px;padding:0 5px;border:1px solid var(--chart-axis, #3a3946);border-radius:4px;background:#1d1c24;color:var(--text-title);font-size:11px;line-height:15px;font-weight:500;text-align:center;font-variant-numeric:tabular-nums lining-nums}.tp-res{height:17px;padding:0 4px;border-radius:4px;background:#131318db;font-size:11px;line-height:17px}.tp-res-name{font-family:var(--font-mono);font-weight:500;color:var(--text-body);letter-spacing:0}.tp-res-money{margin-left:6px;color:var(--text-muted);font-variant-numeric:tabular-nums lining-nums}.tp-fade{transition:opacity .15s ease-out}.project-map:has([data-hit="0"]:is(:hover,:focus-visible)) .tp-fade:not(.r0){opacity:.18}.project-map:has([data-hit="1"]:is(:hover,:focus-visible)) .tp-fade:not(.r1){opacity:.18}.project-map:has([data-hit="2"]:is(:hover,:focus-visible)) .tp-fade:not(.r2){opacity:.18}.project-map:has([data-hit="3"]:is(:hover,:focus-visible)) .tp-fade:not(.r3){opacity:.18}.project-map:has([data-hit="4"]:is(:hover,:focus-visible)) .tp-fade:not(.r4){opacity:.18}.project-map:has([data-hit="5"]:is(:hover,:focus-visible)) .tp-fade:not(.r5){opacity:.18}.project-map:has([data-hit="6"]:is(:hover,:focus-visible)) .tp-fade:not(.r6){opacity:.18}.project-map:has([data-hit="7"]:is(:hover,:focus-visible)) .tp-fade:not(.r7){opacity:.18}.project-map:has(.tp-cell[data-hit="0"]:focus-visible) .tp-label[data-hit="0"]{box-shadow:0 0 0 1px var(--sel)}.project-map:has(.tp-cell[data-hit="1"]:focus-visible) .tp-label[data-hit="1"]{box-shadow:0 0 0 1px var(--sel)}.project-map:has(.tp-cell[data-hit="2"]:focus-visible) .tp-label[data-hit="2"]{box-shadow:0 0 0 1px var(--sel)}.project-map:has(.tp-cell[data-hit="3"]:focus-visible) .tp-label[data-hit="3"]{box-shadow:0 0 0 1px var(--sel)}.project-map:has(.tp-cell[data-hit="4"]:focus-visible) .tp-label[data-hit="4"]{box-shadow:0 0 0 1px var(--sel)}.project-map:has(.tp-cell[data-hit="5"]:focus-visible) .tp-label[data-hit="5"]{box-shadow:0 0 0 1px var(--sel)}.project-map:has(.tp-cell[data-hit="6"]:focus-visible) .tp-label[data-hit="6"]{box-shadow:0 0 0 1px var(--sel)}.project-map:has(.tp-cell[data-hit="7"]:focus-visible) .tp-label[data-hit="7"]{box-shadow:0 0 0 1px var(--sel)}@media(prefers-reduced-motion:reduce){.tp-fade{transition:none}}.tp-legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;padding:4px 16px 12px;font-size:var(--fs-caption, 11px);line-height:16px;color:var(--text-muted)}.tp-legend span{display:inline-flex;align-items:center;gap:5px}.tp-key-dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted)}.tp-key-dot.big{width:10px;height:10px;margin-left:-2px}.tp-key-ribbon{width:20px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--cat-1),var(--cat-shared))}.tp-key-cell{width:12px;height:9px;border-radius:5px;border:1px dashed var(--cat-unassigned)}.tp-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin:0 16px 12px}.tp-group-details{border:1px solid var(--pm-line, #292831);border-radius:8px;background:var(--surface-tile, #15151b);font-size:var(--fs-small);line-height:16px}.tp-group-details>summary{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer}.tp-group-details>summary:before{content:"";width:0;height:0;border-style:solid;border-width:4px 0 4px 6px;border-color:transparent transparent transparent var(--text-muted);transition:transform .15s}.tp-group-details[open]>summary:before{transform:rotate(90deg)}.tp-group-details>summary::-webkit-details-marker{display:none}.tp-group-details>summary:focus-visible{outline:2px solid var(--sel);outline-offset:-2px;border-radius:8px}.tp-group-name{color:var(--pt);font-weight:500}.tp-group-count{margin-left:auto;color:var(--text-muted);font-variant-numeric:tabular-nums lining-nums}.tp-group-body{padding:0 10px 10px;color:var(--text-body)}.tp-rel{margin:4px 0}.tp-rel-label{display:inline-block;min-width:56px;color:var(--text-muted)}.tp-chip{color:var(--pt);font-weight:500}.tp-res-list{list-style:none;margin:8px 0 0;padding:0;border-top:1px solid var(--pm-line, #292831)}.tp-res-list li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--pm-line, #292831)}.tp-res-list li:last-child{border-bottom:0}.tp-res-list li>span{display:flex;flex-direction:column;min-width:0}.tp-res-list .mono{font-size:11px;overflow-wrap:anywhere;color:var(--text-body)}.tp-res-list small{font-size:var(--fs-caption, 11px);color:var(--text-muted)}@media(prefers-reduced-motion:reduce){.tp-group-details>summary:before{transition:none}}.project-map-compact .tp-panel{border-radius:8px}.project-map-compact .pm-head{padding:9px 12px 2px}.project-map-compact .pm-head h4{font-size:var(--fs-small)}.project-map-compact .tp-caption{margin-top:1px}.project-map-compact .tp-wrap{padding:0 4px 4px}
