/* Plattform-Karte — siehe platform-map.js. Nutzt ausschließlich die
   Theme-Variablen aus index.html, damit Dark/Light ohne Sonderfälle greifen. */
.pm{width:100%;max-width:1080px;display:flex;flex-direction:column;gap:14px;text-align:left;}
.pm-head{text-align:center;}
.pm-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--c2);}
.pm-title{font-family:var(--display);font-size:26px;font-weight:600;color:var(--text);margin-top:4px;line-height:1.2;}
.pm-sub{font-size:13px;color:var(--text2);margin:6px auto 0;max-width:640px;}

.pm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;}
.pm-stat{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;}
.pm-stat-n{font-family:var(--display);font-size:24px;font-weight:600;color:var(--c);line-height:1.1;font-variant-numeric:tabular-nums;}
.pm-stat-l{font-family:var(--mono);font-size:9.5px;color:var(--text3);text-transform:uppercase;letter-spacing:0.06em;margin-top:2px;}

.pm-journeys{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;}
.pm-chip{display:inline-flex;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--border2);color:var(--text);border-radius:999px;padding:7px 14px;font-family:var(--sans);font-size:12.5px;cursor:pointer;transition:all 0.2s;}
.pm-chip:hover{border-color:var(--c);background:var(--c4);transform:translateY(-1px);}
.pm-chip.on{background:var(--c);border-color:var(--c);color:var(--bg);}
.pm-chip-ic{font-size:14px;}

.pm-stage{position:relative;background:var(--bg1);border:1px solid var(--border2);border-radius:14px;padding:6px;overflow:hidden;}
.pm-svg{display:block;width:100%;height:auto;}
.pm-lane{fill:var(--bg2);stroke:var(--border);stroke-width:1;}
.pm-lane-lbl{font-family:var(--mono);font-size:10px;fill:var(--text3);text-transform:uppercase;letter-spacing:0.08em;}

.pm-node{cursor:pointer;transition:opacity 0.35s;}
.pm-node rect{fill:var(--bg3);stroke:var(--border2);stroke-width:1.2;transition:fill 0.3s,stroke 0.3s,stroke-width 0.3s;}
.pm-node text{font-family:var(--mono);font-size:10.5px;fill:var(--text2);pointer-events:none;transition:fill 0.3s;}
.pm-node:hover rect,.pm-node:focus-visible rect{stroke:var(--c);stroke-width:2;}
.pm-node:focus{outline:none;}
.pm-k-oss rect{stroke-dasharray:4 3;}
.pm-k-data rect{fill:var(--blue2);}
.pm-k-ai rect{fill:var(--purple2);}
.pm-k-ext rect{fill:var(--amber2);stroke-dasharray:2 3;}
.pm-dim{opacity:0.22;}
.pm-visited rect{stroke:var(--c2);}
.pm-visited text{fill:var(--text);}
.pm-active rect{fill:var(--c3);stroke:var(--c);stroke-width:2.2;}
.pm-active text{fill:var(--text);font-weight:500;}
.pm-selected rect{stroke:var(--amber);stroke-width:2.2;}

.pm-edge{fill:none;stroke:var(--c2);stroke-width:1.6;opacity:0.35;}
.pm-edge-now{stroke:var(--c);stroke-width:2.6;opacity:1;}
.pm-edge-done{opacity:0.7;}
.pm-packet{fill:var(--c);}
.pm-packet-halo{fill:var(--c3);}

.pm-running .pm-lane{opacity:0.7;}

.pm-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-family:var(--mono);font-size:10px;color:var(--text3);}
.pm-leg{display:inline-flex;align-items:center;gap:6px;}
.pm-leg i{width:18px;height:11px;border-radius:3px;border:1.2px solid var(--border3);background:var(--bg3);display:inline-block;}
.pm-leg.pm-k-oss i{border-style:dashed;}
.pm-leg.pm-k-data i{background:var(--blue2);}
.pm-leg.pm-k-ai i{background:var(--purple2);}
.pm-leg.pm-k-ext i{background:var(--amber2);border-style:dotted;}
.pm-leg-hint{margin-left:auto;}

.pm-narration{background:var(--bg2);border:1px solid var(--border3);border-left:3px solid var(--c);border-radius:10px;padding:12px 16px;min-height:86px;}
.pm-n-step{font-family:var(--mono);font-size:11px;color:var(--c2);}
.pm-n-step span{color:var(--text);}
.pm-n-step em{font-style:normal;color:var(--text3);margin-left:6px;}
.pm-n-text{font-size:14px;color:var(--text);margin-top:4px;line-height:1.55;}
.pm-n-ev{font-family:var(--mono);font-size:10.5px;color:var(--text3);margin-top:6px;}
.pm-n-ev code{color:var(--code-color);}
.pm-n-follow{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.pm-follow{background:transparent;border:1px solid var(--border3);color:var(--c2);border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer;text-align:left;}
.pm-follow:hover{background:var(--c4);color:var(--c);}

.pm-controls{display:flex;align-items:center;gap:8px;}
.pm-controls button{background:var(--bg2);border:1px solid var(--border2);color:var(--text);border-radius:8px;min-width:34px;height:30px;cursor:pointer;font-size:11px;}
.pm-controls button:hover{border-color:var(--c);color:var(--c);}
.pm-progress{flex:1;height:4px;background:var(--bg3);border-radius:2px;overflow:hidden;}
.pm-progress-bar{height:100%;width:0;background:var(--c);transition:width 0.4s ease;}

.pm-detail{position:absolute;top:12px;right:12px;width:290px;max-height:calc(100% - 24px);overflow-y:auto;background:var(--bg2);border:1px solid var(--border3);border-radius:12px;padding:14px 16px;box-shadow:0 12px 40px rgba(0,0,0,0.35);text-align:left;}
.pm-detail-x{position:absolute;top:8px;right:10px;background:none;border:none;color:var(--text3);cursor:pointer;font-size:13px;}
.pm-detail-kind{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:0.08em;color:var(--text3);}
.pm-detail-name{font-family:var(--display);font-size:17px;font-weight:600;color:var(--c);margin-top:2px;}
.pm-detail-port{font-family:var(--mono);font-size:10.5px;color:var(--text3);}
.pm-detail-text{font-size:12.5px;color:var(--text2);margin-top:8px;line-height:1.55;}
.pm-detail-path{font-family:var(--mono);font-size:10px;color:var(--code-color);margin-top:8px;word-break:break-all;}
.pm-detail-lbl{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;color:var(--text3);margin-top:12px;}
.pm-detail-js{display:flex;flex-direction:column;gap:5px;margin-top:5px;}
.pm-detail-js button{background:var(--bg3);border:1px solid var(--border);color:var(--text);border-radius:7px;padding:5px 8px;font-size:11.5px;text-align:left;cursor:pointer;}
.pm-detail-js button:hover{border-color:var(--c);}
.pm-ask{margin-top:12px;width:100%;background:var(--c);color:var(--bg);border:none;border-radius:8px;padding:8px;font-size:12.5px;font-weight:500;cursor:pointer;}

.w-more{width:100%;max-width:980px;}
.w-more > summary{list-style:none;cursor:pointer;font-family:var(--mono);font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:0.08em;padding:8px;text-align:center;}
.w-more > summary::-webkit-details-marker{display:none;}
.w-more > summary:hover{color:var(--c2);}
.w-more[open] > summary{margin-bottom:10px;}

@media (max-width:768px){
  .pm-title{font-size:20px;}
  .pm-detail{position:static;width:auto;margin-top:8px;box-shadow:none;}
  .pm-leg-hint{margin-left:0;width:100%;}
}
