:root{--canvas:#F5F7FA;--panel:#FFFFFF;--ink:#1B2432;--ink-soft:#5B6575;--line:#C9D2DE;--edge:#9AA7B8}*{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}body{font-family:Inter,system-ui,sans-serif;background:var(--canvas);color:var(--ink);min-height:100vh}header{padding:28px 36px 18px;border-bottom:1px solid var(--line);background:var(--panel)}.eyebrow{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.14em;color:#7a8699;text-transform:uppercase;margin-bottom:6px}h1{font-family:Space Grotesk,sans-serif;font-size:26px;font-weight:700;letter-spacing:-.01em}.sub{font-size:13.5px;color:#5b6575;margin-top:4px}.layout{display:flex;gap:0;align-items:stretch;max-width:1720px;margin:0 auto}.chart-wrap{flex:1 1 auto;min-width:0;padding:26px 10px 26px 26px}.chart-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px}.chart-card svg{width:100%;height:auto;display:block}.legend{display:flex;gap:18px;align-items:center;margin-top:12px;font-size:12px;color:#5b6575}.legend b{color:var(--ink)}.node.svc{cursor:pointer}.node.svc:hover rect,.node.svc:hover polygon{stroke:var(--ink)}.node.svc:focus-visible{outline:none}.node.svc:focus-visible rect,.node.svc:focus-visible polygon{stroke:var(--ink);stroke-width:2.4}.detail{margin-top:14px;border:1.5px solid var(--line);border-radius:12px;padding:16px 18px;background:#fafbfd}.detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.detail-title{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#7a8699}.svc-card{display:flex;gap:14px;align-items:flex-start;padding:14px 0}.svc-card+.svc-card{border-top:1px solid var(--line)}.svc-order{flex:0 0 26px;height:26px;border-radius:50%;display:grid;place-items:center;font-family:Space Grotesk,sans-serif;font-weight:700;font-size:13px;color:#fff;background:var(--ink);margin-top:1px}.detail-name{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:16px}.detail-close{border:none;background:none;cursor:pointer;font-size:22px;line-height:1;color:#8a94a6;padding:2px 6px;border-radius:6px}.detail-close:hover{color:var(--ink);background:#edf0f5}.detail-close:focus-visible{outline:3px solid var(--ink);outline-offset:1px}.detail-body{font-size:13.5px;line-height:1.55;color:#3d4757;margin-top:4px;max-width:72ch}.demo-btn{margin-top:10px;font-family:Space Grotesk,sans-serif;font-size:13px;font-weight:600;color:#fff;background:var(--ink);border:1.5px solid var(--ink);border-radius:10px;padding:9px 18px;cursor:pointer;transition:background .2s ease}.demo-btn:hover{background:#2c394e}.demo-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.card-btns{display:flex;gap:8px;align-items:center}.training-btn{margin-top:10px;font-family:Space Grotesk,sans-serif;font-size:13px;font-weight:600;color:var(--ink);background:var(--panel);border:1.5px solid var(--ink);border-radius:10px;padding:9px 18px;cursor:pointer;transition:background .2s ease}.training-btn:hover{background:#edf0f5}.training-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.training-btn.series{margin:0 0 0 10px;padding:6px 12px;font-size:12px;vertical-align:middle}.demo-btn.missing,.training-btn.missing{opacity:.4;cursor:default}.rail{flex:0 0 250px;padding:26px 26px 26px 12px;display:flex;flex-direction:column;gap:14px}.rail-title{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#7a8699;padding:2px 4px}.persona{display:flex;align-items:center;gap:14px;background:var(--panel);border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;cursor:pointer;text-align:left;width:100%;font-family:inherit;transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease}.persona:hover{transform:translate(-3px)}.persona:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.persona .bust{flex:0 0 52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#eef1f6;border:2.5px solid transparent;transition:border-color .22s ease,background .22s ease}.persona .bust svg{display:block}.persona .who .name{font-family:Space Grotesk,sans-serif;font-weight:600;font-size:15px;line-height:1.2}.persona .who .role{font-size:12px;color:#6b7688;margin-top:2px}.persona.active{box-shadow:0 6px 18px #1b24321a}.clear-btn{font-family:Space Grotesk,sans-serif;font-size:13px;font-weight:600;color:var(--ink);background:var(--panel);border:1.5px solid var(--line);border-radius:10px;padding:10px 14px;cursor:pointer;transition:border-color .22s ease,background .22s ease,opacity .22s ease}.clear-btn:hover:not(:disabled){border-color:var(--ink);background:#f0f3f8}.clear-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.clear-btn:disabled{opacity:.45;cursor:default}.profile-select{font-family:Inter,sans-serif;font-size:13px;color:var(--ink);background:var(--panel);border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;width:100%;cursor:pointer}.profile-select:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.profile-actions{display:flex;gap:8px}.mini-btn{font-family:Space Grotesk,sans-serif;font-size:12px;font-weight:600;color:var(--ink);background:var(--panel);border:1.5px solid var(--line);border-radius:8px;padding:7px 12px;cursor:pointer;flex:1;transition:border-color .2s ease,background .2s ease,color .2s ease}.mini-btn:hover{border-color:var(--ink)}.mini-btn.danger:hover,.mini-btn.danger.confirm{border-color:#c0392b;color:#c0392b;background:#fbedeb}.mini-btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.builder{border:1.5px solid var(--ink);border-radius:14px;padding:14px;background:var(--panel);display:flex;flex-direction:column;gap:10px}.builder-title{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:14px}.builder-name{font-family:Inter,sans-serif;font-size:13px;border:1.5px solid var(--line);border-radius:8px;padding:9px 11px;width:100%}.builder-name:focus-visible{outline:3px solid var(--ink);outline-offset:1px}.builder-hint{font-size:12px;color:#6b7688;line-height:1.45}.builder-count{font-family:IBM Plex Mono,monospace;font-size:11px;color:#7a8699;letter-spacing:.05em}.builder-btns{display:flex;gap:8px}.builder-btns .demo-btn{margin-top:0;flex:1}.builder-btns .demo-btn:disabled{opacity:.45;cursor:default}.rail.building .persona,.rail.building .profile-select,.rail.building #create-btn,.rail.building #clear-btn,.rail.building #profile-actions{opacity:.35;pointer-events:none}svg.building .node.svc:hover rect{stroke-width:2.4}.node.picked rect{stroke-width:2.4}.hint{font-size:12px;color:#8a94a6;padding:2px 4px;line-height:1.5}.node{transition:opacity .3s ease}.node rect,.node polygon{fill:#fff;stroke:var(--edge);stroke-width:1.6;transition:fill .3s ease,stroke .3s ease,stroke-width .3s ease}.node .label{font-family:Inter,sans-serif;font-size:12.5px;line-height:1.35;color:var(--ink);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:100%;padding:6px 10px}.node .label b{font-weight:700}.node .label .step{font-size:12.5px}.chips{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.chip{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.03em;color:#1d4ed8;background:#e4edff;border:1px solid #B9CDF5;border-radius:20px;padding:2px 9px;white-space:nowrap}.band-label{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:1.5px;fill:#7a8699}.node.milestone rect{fill:#fff;stroke:var(--ink);stroke-width:2.5}.mile-eyebrow{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:1.5px;color:#7a8699}.edge-path.feedback{stroke:#0d9488;stroke-dasharray:6 5;stroke-width:1.6}.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.view-toggle{display:inline-flex;gap:0;border:1.5px solid var(--line);border-radius:10px;overflow:hidden}.vt{font-family:Space Grotesk,sans-serif;font-size:13px;font-weight:600;color:#5b6575;background:var(--panel);border:none;padding:8px 18px;cursor:pointer;transition:background .2s ease,color .2s ease}.vt+.vt{border-left:1.5px solid var(--line)}.vt.active{background:var(--ink);color:#fff}.vt:disabled{opacity:.45;cursor:default}.vt:focus-visible{outline:3px solid var(--ink);outline-offset:2px}#flywheel .fly-label{font-family:Inter,sans-serif}#flywheel path.seg{transition:opacity .6s ease}#flywheel .fly-plabel{transition:opacity .6s ease}.edge-path{stroke:var(--edge);stroke-width:1.4;fill:none;transition:opacity .3s ease}.arrow{fill:var(--edge)}svg.has-selection .node.dimmed{opacity:.14}svg.has-selection .edge-path,svg.has-selection .arrow{opacity:.22}svg.has-selection .edge-path.onpath{opacity:1;stroke-width:2.1}svg.has-selection .node.onpath{opacity:1}.node.onpath rect,.node.onpath polygon{stroke-dasharray:5 4}.node.lit rect,.node.lit polygon{stroke-width:2.4}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media(max-width:980px){.layout{flex-direction:column}.chart-wrap{padding:20px}.rail{flex-direction:row;flex-wrap:wrap;padding:0 20px 24px}.rail-title,.hint{flex-basis:100%}.persona{width:auto;flex:1 1 40%}}
