.narrow-only{display:none}
.stack-foot.solo{grid-template-columns:minmax(0,1fr)}

/* shared additions */
.stage-top{display:flex;flex-direction:column-reverse;align-items:flex-start}
.rough-tag{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:var(--r-sm);background:var(--warn-50);color:var(--warn);font:600 11px/1 var(--font-sans);white-space:nowrap;margin-bottom:8px}
.stage.rough{border:1px dashed var(--warn)}
.stage.fixed{border:2px solid var(--nl-teal);background:var(--tint)}
.conn-recs{display:flex;gap:4px;justify-content:center;flex-wrap:wrap}
.stage-recs{justify-content:flex-start;margin:-6px 0 14px}
.conn.fixed .conn-ico{background:var(--nl-teal);color:#fff}
.conn.fixed .conn-mode{color:var(--accent-ink)}
.conn,.stage,.conn-ico,.conn-line{transition:background var(--dur-slow) var(--ease-out),border-color var(--dur-slow) var(--ease-out),color var(--dur-slow) var(--ease-out)}

/* 1 hub and spokes */
.hub{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 128px 248px 128px minmax(0,1fr);align-items:center;padding:8px 0}
.hub-svg{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;z-index:0}
.hub-col,.hub-mid,.hub-gap{position:relative;z-index:1}
.hub-head{margin-bottom:14px}
.hub-head h4{font-size:18px;margin:0 0 4px;color:var(--ink)}
.hub-head p{font-size:13.5px;color:var(--ink-2);margin:0}
.hub-l .hub-head{text-align:right}
.hub-list{display:flex;flex-direction:column;gap:8px}
.hub-l .hub-list{align-items:flex-end}
.hub-r .hub-list{align-items:flex-start}
.hub-sys{display:inline-flex;align-items:center;height:32px;padding:0 14px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);font:500 13px/1 var(--font-sans);color:var(--ink)}
.hub-r .hub-sys{border-color:var(--tint-line);background:var(--tint)}
.spoke{fill:none}
.spoke.manual{stroke:var(--warn);stroke-width:1.5;stroke-dasharray:5 5}
.spoke.auto{stroke:var(--nl-teal);stroke-width:3.5}
.hub-ar{fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.hub-ar.manual{stroke:var(--warn)}
.hub-ar.auto{stroke:var(--nl-teal)}
.hub-gap{align-self:stretch;display:flex;align-items:flex-start;justify-content:center;padding-top:4px}
.hub-lbl{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:8px 6px;border-radius:var(--r-md);font-size:12px;line-height:1.3;color:var(--ink)}
.hub-lbl b{font:700 11.5px/1 var(--font-sans)}
.hub-lbl.manual b{color:var(--warn)}
.hub-lbl.auto b{color:var(--accent-ink)}
.hub-lbl .conn-ico{width:30px;height:30px;border-radius:50%;display:grid;place-items:center}
.hub-lbl.auto .conn-ico{background:var(--tint);color:var(--accent-ink)}
.hub-lbl.manual .conn-ico{background:var(--warn-50);color:var(--warn)}
.hub-lbl .conn-down{display:none}
.hub-core{aspect-ratio:1/1;border-radius:50%;background:var(--deep);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px;box-shadow:0 0 0 8px var(--tint),var(--shadow-3)}
.hub-core .kicker{color:var(--nl-teal-200)}
.hub-core h4{color:#fff;font-size:21px;margin:0 0 6px}
.hub-core p{color:var(--nl-slate);font-size:13.5px;margin:0}

/* 2 bottleneck */
.pipe{display:flex;flex-direction:column;gap:12px}
.pipe-band{position:relative;height:270px;display:grid;grid-template-columns:minmax(0,1fr) 150px minmax(0,1.15fr) 120px minmax(0,1.05fr)}
.pipe-svg{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
.pipe-band-fill{fill:var(--tint);stroke:var(--tint-line);stroke-width:1.5}
.pipe-core-fill{fill:var(--deep)}
.pipe-step-fill.manual{fill:var(--warn-50);stroke:var(--warn);stroke-width:1.5;stroke-dasharray:5 4}
.pipe-step-fill.automatic{fill:var(--tint)}
.pipe-cell{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;min-width:0}
.pipe-stage{padding:0 22px}
.pipe-stage h4{font-size:18px;margin:0 0 10px;color:var(--ink)}
.pipe-stage p{font-size:13.5px;color:var(--ink-2);margin:0}
.pipe-stage.core .kicker{color:var(--nl-teal-200)}
.pipe-stage.core h4{color:#fff;font-size:21px}
.pipe-stage.core p{color:var(--nl-slate);font-size:14px}
.pipe-stage .systems{margin-top:0}
.pipe-stage .sys{background:var(--surface)}
.pipe-step{align-items:center}
.pipe-step .conn-ico{width:32px;height:32px;border-radius:50%;display:grid;place-items:center}
.pipe-step.manual .conn-ico{background:var(--surface);color:var(--warn);box-shadow:0 0 0 1.5px var(--warn)}
.pipe-step.automatic .conn-ico{background:var(--nl-teal);color:#fff}
.pipe-labels{display:grid;grid-template-columns:minmax(0,1fr) 150px minmax(0,1.15fr) 120px minmax(0,1.05fr);align-items:start}
.pipe-note{font-size:12.5px;color:var(--ink-2);padding:0 22px}
.pipe-lbl{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;font-size:12px;color:var(--ink);line-height:1.3;padding:0 4px}
.pipe-lbl b{font:700 11.5px/1.2 var(--font-sans)}
.pipe-lbl.manual b{color:var(--warn)}
.pipe-lbl.automatic b{color:var(--accent-ink)}

/* 5 before and after */
.ba-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-bottom:20px}
.seg{display:inline-flex;padding:3px;border-radius:var(--r-md);background:var(--soft)}
.seg button{height:32px;padding:0 14px;border:0;border-radius:var(--r-sm);background:none;font:600 13px/1 var(--font-sans);color:var(--ink-2);cursor:pointer;transition:background var(--dur-base) var(--ease-out),color var(--dur-base)}
.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}
.ba-hint{font-size:13px;color:var(--ink-2)}
.print-only{display:none}

/* responsive */
@media (max-width:1100px){
  .hub{grid-template-columns:minmax(0,1fr) 100px 210px 100px minmax(0,1fr)}
  .hub-core{padding:26px}.hub-core h4{font-size:18px}
  .pipe-band,.pipe-labels{grid-template-columns:minmax(0,1fr) 110px minmax(0,1.15fr) 96px minmax(0,1.05fr)}
}
@media (max-width:860px){
  .wide-only{display:none}
  .narrow-only{display:block}
}
@media print{
  .ba-bar{display:none!important}
  .print-only{display:block}
  .ba-print{margin-top:20px}
  .wide-only{display:block}
  .narrow-only{display:none}
}
