/* Five-platform explorer: the lifecycle above, operational visibility across it. */
#map .fs-platform-explorer {background:rgba(255,255,255,.94);border:1px solid #dbeafe;border-radius:24px;box-shadow:0 20px 50px rgba(15,23,42,.07);overflow:hidden}
#map .fx-toolbar {display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:24px 28px;border-bottom:1px solid #e2e8f0}
#map .fx-toolbar strong {font:800 18px/1.4 Manrope,sans-serif!important;color:#1e40af!important}
#map .fx-toolbar p {font:500 13px/1.5 Manrope,sans-serif!important;color:#64748b!important;margin-top:6px}
#map .fx-controls {display:flex;align-items:center;gap:8px}
#map .fx-controls button {min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#1e40af;font:700 13px/1.4 Manrope,sans-serif!important;cursor:pointer}
#map .fx-controls [data-fx-play] {background:#eff6ff;border-color:#bfdbfe}
#map .fx-controls [data-fx-prev] svg {transform:rotate(180deg)}
#map .fx-controls svg,#map .fx-node-indicator svg,#map .fx-open svg {width:18px!important;height:18px!important;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
#map .fx-controls [aria-pressed="true"] {background:#1e40af;color:#fff}
#map .fx-canvas {padding:28px;background:linear-gradient(180deg,#f8fbff,#fff)}
#map .fx-lifecycle {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 20px}
#map .fx-node {position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding:22px;text-align:left!important;min-width:0;background:#fff;border:1px solid #dbeafe;border-radius:16px;color:#1e40af;cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s}
#map .fx-node-icon {display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:#eff6ff;color:#2563eb}
#map .fx-node-copy {display:grid;gap:7px}
#map .fx-node-copy small {font:800 11px/1.4 Manrope,sans-serif!important;text-transform:uppercase;letter-spacing:.08em;color:#64748b!important}
#map .fx-node-copy strong {font:800 19px/1.25 Manrope,sans-serif!important;color:#1e40af!important}
#map .fx-node-copy > span {font:500 13px/1.5 Manrope,sans-serif!important;color:#475569!important}
#map .fx-node-indicator {position:absolute;right:14px;top:20px;color:#94a3b8}
#map .fx-node.is-selected {border-color:#2563eb;background:#f1f7ff;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
#map .fx-node.is-selected .fx-node-icon {background:#2563eb;color:#fff}
#map .fx-node.is-selected .fx-node-indicator {color:#2563eb}
#map .fx-connector {position:absolute;right:-21px;top:46px;width:20px;height:2px;background:#cbd5e1;pointer-events:none}
#map .fx-packet {display:block;position:absolute;width:7px;height:7px;border-radius:50%;background:#d89b00;top:-2.5px;opacity:0}
#map .is-following[data-phase="2"] .is-selected .fx-packet {opacity:1;animation:fx-record-travel 1.3s ease-in-out infinite}
@keyframes fx-record-travel {from{transform:translateX(0);opacity:0}25%{opacity:1}75%{opacity:1}to{transform:translateX(18px);opacity:0}}
#map .fx-operations {grid-column:1/-1;flex-direction:row;align-items:center;padding:20px 24px;background:linear-gradient(110deg,#f4f8ff,#fffdf5)}
#map .fx-operations .fx-node-indicator {top:50%;transform:translateY(-50%)}
#map .fx-connection-note {margin:20px 0 0;font:500 12px/1.6 Manrope,sans-serif!important;color:#64748b!important;text-align:center!important}
#map .fx-detail-wrap {border-top:1px solid #e2e8f0;padding:28px}
#map .fx-detail {display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:stretch}
#map .fx-detail[hidden] {display:none!important}
#map .fx-eyebrow {font:800 11px/1.5 Manrope,sans-serif!important;text-transform:uppercase;letter-spacing:.08em;color:#1e40af!important}
#map .fx-detail h3 {font:800 28px/1.2 'Inter Tight',sans-serif!important;color:#1e40af!important;margin:12px 0 16px}
#map .fx-detail-main > p {font:500 15px/1.6 Manrope,sans-serif!important;color:#475569!important;max-width:540px;text-align:left!important;hyphens:none!important}
#map .fx-capabilities {list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:22px 0}
#map .fx-capabilities li {padding:7px 10px;background:#eff6ff;border-radius:7px;font:600 12px/1.4 Manrope,sans-serif!important;color:#1e40af!important}
#map .fx-open {display:inline-flex;align-items:center;gap:16px;margin-top:10px;padding:13px 18px;background:#2563eb!important;border:1px solid #1d4ed8!important;color:#fff!important;border-radius:10px;font:700 14px/1.4 Manrope,sans-serif!important}
#map .fx-record {display:grid;gap:12px}
#map .fx-record-section {padding:18px 20px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;transition:background .25s,border-color .25s}
#map .fx-record-label {display:block;font:800 11px/1.4 Manrope,sans-serif!important;text-transform:uppercase;letter-spacing:.06em;color:#64748b!important;margin-bottom:7px}
#map .fx-record-section p {font:500 14px/1.6 Manrope,sans-serif!important;color:#475569!important;margin:0;text-align:left!important}
#map .fx-review-gate {display:flex;align-items:center;gap:16px;padding:18px 20px;border:1px solid #f5d78b;border-radius:12px;background:#fffdf5;transition:background .25s,border-color .25s,box-shadow .25s}
#map .fx-review-gate .platform-overview-icon {color:#b77900}
#map .fx-review-gate strong {display:block;font:800 14px/1.5 Manrope,sans-serif!important;color:#1e40af!important}
#map .fx-review-gate small {display:block;font:500 12px/1.5 Manrope,sans-serif!important;color:#64748b!important;margin-top:6px}
#map .fx-record-section ul {list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0}
#map .fx-record-section li {padding:5px 8px;border-radius:6px;background:#fff;border:1px solid #dbeafe;font:600 12px/1.4 Manrope,sans-serif!important;color:#1e40af!important}
#map .is-following .fx-detail[data-phase="0"] [data-fx-input],#map .is-following .fx-detail[data-phase="2"] [data-fx-output] {background:#eff6ff;border-color:#93c5fd}
#map .is-following .fx-detail[data-phase="1"] .fx-review-gate {background:#fff5d5;border-color:#d89b00;box-shadow:0 0 0 3px rgba(216,155,0,.1)}
#map .fx-demo-caption {display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:18px 28px;border-top:1px solid #e2e8f0;background:#f8fafc;color:#475569;font:600 12px/1.5 Manrope,sans-serif!important}
#map .fx-demo-caption small {margin-left:auto;font:500 11px/1.5 Manrope,sans-serif!important;color:#64748b!important}
#map .fx-demo-dot {width:7px;height:7px;border-radius:50%;background:#94a3b8;flex:none}
#map .is-following .fx-demo-dot {background:#2563eb}
#map :is(.fx-node,.fx-controls button,.fx-open):focus-visible {outline:3px solid #d89b00;outline-offset:4px}
#map .fx-sr-only {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:1000px) {#map .fx-lifecycle {grid-template-columns:repeat(2,minmax(0,1fr))}#map .fx-connector {display:none}}
@media(max-width:650px) {
 #map .fx-toolbar,#map .fx-canvas,#map .fx-detail-wrap {padding:20px}
 #map .fx-toolbar {gap:18px}
 #map .fx-controls {width:100%}#map .fx-controls [data-fx-play] {flex:1;min-width:0;padding-inline:10px}
 #map .fx-lifecycle {grid-template-columns:1fr;gap:12px}
 #map .fx-node {flex-direction:row;align-items:center;gap:14px;padding:18px}
 #map .fx-node-icon {width:40px;height:40px;flex:none}
 #map .fx-node-copy {padding-right:16px}#map .fx-node-copy strong {font-size:16px!important}
 #map .fx-node-indicator {top:50%;transform:translateY(-50%)}
 #map .fx-operations {grid-column:auto}
 #map .fx-detail {grid-template-columns:1fr;gap:24px}#map .fx-detail h3 {font-size:25px!important}
 #map .fx-demo-caption {padding:16px 20px}#map .fx-demo-caption small {margin-left:0}
}
@media(prefers-reduced-motion:reduce) {#map .fs-platform-explorer * {animation:none!important;transition:none!important}}
/* People-to-platform map: connected roles instead of a generic lifecycle row. */
#map .fx-people-map {padding:32px;background:radial-gradient(circle,rgba(37,99,235,.1) 1px,transparent 1.5px) 0 0/24px 24px,linear-gradient(135deg,#f8fbff,#fffdf7)}
#map .fx-map-heading {display:grid;grid-template-columns:36% 1fr;gap:9%;margin-bottom:20px;font:800 11px/1.4 Manrope,sans-serif;text-transform:uppercase;letter-spacing:.1em;color:#64748b}
#map .fx-lifecycle {display:grid;grid-template-columns:1fr;gap:14px}
#map .fx-role-row {display:grid;grid-template-columns:36% 9% 55%;align-items:center;padding:0;border:0;background:transparent;text-align:left;cursor:pointer;min-width:0}
#map .fx-person {display:flex;align-items:center;gap:16px;padding:15px 18px;background:#fff;border:1px solid #dbeafe;border-radius:14px;box-shadow:0 4px 14px rgba(30,64,175,.04)}
#map .fx-person-icon {display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;background:#eff6ff;color:#1e40af}
#map .fx-person-icon svg {width:26px!important;height:26px!important;fill:none;stroke:currentColor;stroke-width:1.6}
#map .fx-person strong {display:block;font:800 16px/1.4 Manrope,sans-serif;color:#1e40af}
#map .fx-person small {display:block;font:500 12px/1.5 Manrope,sans-serif;color:#64748b;margin-top:4px}
#map .fx-role-connection {height:2px;background:#cbd5e1;position:relative}
#map .fx-role-connection i {position:absolute;right:-3px;top:-3px;width:8px;height:8px;border-radius:50%;background:#94a3b8}
#map .fx-platform-destination {position:relative;display:flex;align-items:center;gap:18px;padding:18px 22px;background:#fff;border:1px solid #dbeafe;border-radius:16px;min-width:0;transition:background .2s,border-color .2s,box-shadow .2s}
#map .fx-role-row.is-selected .fx-platform-destination {background:linear-gradient(110deg,#eff6ff,#fff);border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
#map .fx-role-row.is-selected .fx-node-icon {background:#2563eb;color:white}
#map .fx-role-row.is-selected .fx-person {border-color:#93c5fd}
#map .fx-role-row.is-selected .fx-role-connection {background:linear-gradient(90deg,#2563eb,#d89b00)}
#map .fx-role-row.is-selected .fx-role-connection i {background:#d89b00}
#map .fx-node-copy {padding-right:20px}
#map .fx-node-indicator {top:50%;transform:translateY(-50%)}
#map .fx-approval-note {display:flex;align-items:center;justify-content:center;gap:12px;margin-top:26px;padding:16px;border:1px solid #f5d78b;border-radius:12px;background:#fff9e7;color:#785100;font:700 13px/1.5 Manrope,sans-serif}
#map .fx-role-row:focus-visible {outline:3px solid #d89b00;outline-offset:4px;border-radius:14px}
#map .fx-detail:not([hidden]) {animation:fx-detail-in .3s ease-out both}
@keyframes fx-detail-in {from{opacity:.65;transform:translateY(6px)}to{opacity:1;transform:none}}
#flows .fs-tabs button {display:inline-flex;align-items:center;gap:9px}
#flows .fs-tabs .platform-overview-icon {width:20px!important;height:20px!important}
#flows .fs-walk-title {display:flex;align-items:center;gap:14px}
#flows .fs-walk-title span {background:linear-gradient(100deg,#1e40af,#2563eb 65%,#b77900);background-clip:text;-webkit-background-clip:text;color:transparent!important}
#flows .fs-walk-title svg {color:#2563eb;width:30px!important;height:30px!important}
#flows .fs-tabpanel:not([hidden]) .fs-platform-steps li {animation:fx-step-arrive .4s ease-out var(--step-delay) both}
@keyframes fx-step-arrive {from{opacity:.45;transform:translateY(8px);border-color:#fbbf24;background:#fff9e7}to{opacity:1;transform:none;border-color:#dbeafe;background:#fff}}
@media(max-width:650px) {
 #map .fx-people-map {padding:20px}#map .fx-map-heading {display:none}
 #map .fx-role-row {grid-template-columns:1fr;gap:0}#map .fx-person {border-radius:12px 12px 0 0;padding:12px 14px;background:#f8fbff}
 #map .fx-role-connection {display:none}#map .fx-platform-destination {border-radius:0 0 12px 12px;padding:14px}
 #map .fx-person strong {font-size:14px}#map .fx-person small {font-size:11px}
 #map .fx-person-icon {width:32px;height:32px}#map .fx-person-icon svg {width:22px!important;height:22px!important}
 #map .fx-approval-note {align-items:flex-start;font-size:12px}
}
@media(prefers-reduced-motion:reduce){#flows .fs-platform-steps li,#map .fx-detail {animation:none!important;transition:none!important}}
/* Active platform uses the yellow selection accent. */
#map .fx-role-row.is-selected .fx-platform-destination {background:linear-gradient(110deg,#fff3c4,#fff9e7);border-color:#d89b00;box-shadow:0 0 0 3px rgba(251,191,36,.18)}
#map .fx-role-row.is-selected .fx-node-icon {background:#fbbf24;color:#1e3a8a}
#map .fx-role-row.is-selected .fx-node-indicator {color:#785100}
