/* Flow first cards share one fixed footprint across zoom levels. */
.ss-v2 {
  --ss-bg: light-dark(#eeeff0, #151617); --ss-sidebar: light-dark(#f6f6f7, #191b1d);
  --ss-surface: light-dark(#fff, #252729); --ss-raised: light-dark(#e5e8e9, #343739);
  --ss-border: light-dark(#c9cdd0, #3b4043); --ss-text: light-dark(#202428, #f0f1f2);
  --ss-muted: light-dark(#5e666d, #aab2b8); --ss-flow-good: light-dark(#29783d, #75c767);
  --ss-flow-bad: light-dark(#a73b39, #ea8277); --ss-flow-partial: light-dark(#a46610, #f3ba55); --ss-flow-surplus: var(--ss-muted);
}
.ss-button--primary:hover { background: var(--ss-raised); color: var(--ss-text); }
.ss-v2 .ss-grid-node.is-dimmed { opacity: 1; }
.ss-grid-node { --ss-item-size:72px; --ss-overview-item-size:max(72px,calc(22px / var(--ss-canvas-scale,1))); }
.ss-v2 .ss-grid-node:not(.ss-grid-node--stamp) > .ss-node-body { position:relative; padding:0; border:1px solid var(--ss-border); border-radius:8px; outline-color:transparent; background:var(--ss-surface); box-shadow:0 3px 0 #0002; }
.ss-v2 .ss-grid-node:not(.ss-grid-node--stamp):hover > .ss-node-body { border-color:var(--ss-muted); }
.ss-v2 .ss-grid-node:not(.ss-grid-node--stamp).has-shortage > .ss-node-body { border-color:var(--ss-border); }
.ss-v2 .ss-grid-node.is-selected > .ss-node-body { border-color:var(--ss-accent); outline-color:var(--ss-accent); box-shadow:0 0 0 calc(5px / var(--ss-canvas-scale,1)) color-mix(in srgb, var(--ss-accent) 20%, transparent); }
.ss-card-header { position:absolute; inset:0 0 auto; height:72px; display:flex; align-items:center; gap:12px; padding:12px 56px 12px 16px; background:var(--ss-sidebar); border-bottom:1px solid var(--ss-border); border-radius:8px 8px 0 0; }
.ss-card-header .ss-node-select img { width:44px; height:44px; }
.ss-node-title { font-size:22px; line-height:1.25; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ss-card-machine { font-size:15px; margin-top:4px; }
.ss-vertical-title { display:none; }
.ss-orientation-edge { display:none; }
.ss-belt-label.is-inspect-only:not(.is-selected):not(.is-hovered) { display:none; }
.ss-v2 .ss-belt-label.is-inspect-only { font-size:12px; transform:translate(-50%,-50%) scale(calc(1 / var(--ss-canvas-scale,1))); }
.ss-belt-label.is-inspect-only img { width:18px; height:18px; }
.ss-belt-hit:focus-visible { outline:none; stroke:var(--ss-accent); stroke-opacity:.25; }
.ss-v2 .ss-belt-junction { position:absolute; z-index:3; display:flex; align-items:center; justify-content:center; width:24px; height:24px; min-height:0; padding:0; transform:translate(-50%,-50%) scale(calc(1 / var(--ss-canvas-scale,1))); border:0; background:none; color:var(--ss-text); font-size:9px; line-height:12px; font-weight:600; cursor:pointer; }
.ss-junction-mark { width:14px; height:14px; border:1px solid var(--ss-flow-good); border-radius:3px; background:var(--ss-sidebar); }
@media (pointer:coarse) { .ss-v2 .ss-belt-junction { width:44px; height:44px; } }
.ss-belt-junction.is-dimmed { opacity:.4; }
[data-zoom-detail=map] .ss-belt-junction { display:none; }
.ss-v2 .ss-node-body .ss-card-identity .ss-card-field, .ss-v2 .ss-node-body .ss-card-settings, .ss-v2 .ss-node-body .ss-card-routing, .ss-v2 .ss-node-body .ss-card-power, .ss-v2 .ss-node-body .ss-resource-supply { display:none; }
.ss-card-flow { position:absolute; top:96px; left:36px; right:36px; height:var(--ss-flow-height); display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:64px; margin:0; }
.ss-card-ports { position:relative; min-width:0; border:0; padding:0; }
.ss-card-ports h3 { position:absolute; top:-24px; margin:0; color:var(--ss-muted); font-size:14px; font-weight:500; letter-spacing:.04em; }
.ss-card-rate { position:absolute; left:0; width:100%; height:144px; display:grid; align-content:center; align-items:center; grid-template-columns:var(--ss-item-size,44px) minmax(0,1fr); gap:2px 9px; margin:0; font-size:16px; }
.ss-grid-node--resource .ss-card-rate { height:144px; }
.ss-card-rate > img { position:absolute; left:0; top:50%; transform:translateY(-50%); width:var(--ss-item-size,44px); height:var(--ss-item-size,44px); object-fit:contain; }
.ss-rate-name { grid-column:2; font-size:18px; font-weight:500; line-height:1.2; white-space:normal; overflow-wrap:anywhere; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.ss-quantity { display:inline-flex; align-items:baseline; gap:2px; font-variant-numeric:tabular-nums; }
.ss-quantity b { font-size:26px; font-weight:600; line-height:1.15; }
.ss-quantity-unit { font-size:12px; font-weight:400; color:var(--ss-muted); }
.ss-card-rate > .ss-quantity { grid-column:2; color:var(--ss-text); min-width:0; white-space:nowrap; }
.ss-card-rate > .ss-quantity b { font-size:var(--ss-main-rate-size,40px); }
.ss-card-rate .ss-quantity-unit { display:none; }
.ss-rate-detail { grid-column:2; display:flex; flex-wrap:wrap; gap:2px 6px; min-height:0; margin:0; font-size:14px; line-height:1.2; color:var(--ss-muted); }
.ss-rate-carried, .ss-rate-production, .ss-rate-retained { display:inline-flex; align-items:center; gap:4px; }
.ss-rate-detail svg, .ss-rate-retained img { width:16px; height:16px; object-fit:contain; flex-shrink:0; }
.ss-rate-detail .ss-quantity b { font-size:16px; font-weight:400; }
.ss-v2 button.ss-rate-retained { background:none; border:0; padding:0; color:var(--ss-muted); cursor:pointer; }
.ss-rate-carried.is-shortage { color:var(--ss-flow-bad); }
.ss-flow-meter { display:block; width:100%; height:6px; border-radius:3px; background:color-mix(in srgb, var(--ss-muted) 20%, transparent); overflow:hidden; }
:is(.ss-card-rate,.ss-zoom-rate) > .ss-flow-meter { grid-column:2; margin-top:3px; }
.ss-flow-meter-fill { display:block; height:100%; background:var(--ss-flow-good); }
.ss-flow-meter[data-flow-state=partial] .ss-flow-meter-fill { background:var(--ss-flow-partial); }
.ss-flow-meter:is([data-flow-state=empty],[data-flow-state=overcommitted]) { background:color-mix(in srgb, var(--ss-flow-bad) 35%, var(--ss-surface)); }
.ss-flow-meter:is([data-flow-state=empty],[data-flow-state=overcommitted]) .ss-flow-meter-fill { background:var(--ss-flow-bad); }
.ss-card-footer { position:absolute; bottom:0; left:0; right:0; height:48px; display:flex; justify-content:space-between; align-items:center; padding:8px 16px; border-top:1px solid var(--ss-border); border-radius:0 0 8px 8px; background:var(--ss-sidebar); color:var(--ss-muted); }
.ss-v2 .ss-node-status { position:static; display:flex; align-items:center; gap:7px; height:auto; padding:0; color:var(--ss-muted); }
.ss-health-dot { width:7px; height:7px; border-radius:50%; background:var(--ss-flow-good); }
.has-shortage .ss-health-dot, .has-missing-ports .ss-health-dot { background:var(--ss-flow-bad); }
.ss-card-footer .ss-quantity b { font-size:16px; font-weight:400; }
.ss-resource-caption { font-size:15px; }
.ss-grid-node[data-rotation="180"] .ss-port-inputs, .ss-grid-node[data-rotation="180"] .ss-zoom-inputs { grid-column:2; grid-row:1; }
.ss-grid-node[data-rotation="180"] .ss-port-outputs, .ss-grid-node[data-rotation="180"] .ss-zoom-outputs { grid-column:1; grid-row:1; }
.ss-grid-node--resource .ss-card-flow, .ss-grid-node--resource .ss-zoom-flow { grid-template-columns:minmax(0,1fr); }
.ss-grid-node--resource .ss-zoom-inputs { display:none; }
.ss-v2 .ss-grid-node .ss-port-connector { --ss-port-color:var(--ss-flow-good); width:24px; height:24px; padding:0; min-height:0; border:0; border-radius:50%; background:transparent; color:var(--ss-port-color); }
.ss-port-connector::after { content:""; width:14px; height:14px; border-radius:50%; background:var(--ss-port-color); border:2px solid var(--ss-surface); pointer-events:none; }
.ss-port-connector.is-unconnected::after { background:var(--ss-surface); border-color:var(--ss-muted); }
.ss-v2 .ss-port-connector.is-shortage, .ss-v2 .ss-port-connector.is-limited { --ss-port-color:var(--ss-flow-bad); }
.ss-port-connector--left { left:-12px; transform:translateY(-50%); }
.ss-port-connector--right { right:-12px; transform:translateY(-50%); }
.ss-port-connector--top { top:-12px; transform:translateX(-50%); }
.ss-port-connector--bottom { bottom:-12px; transform:translateX(-50%); }
.ss-v2 .ss-port-direction { --cue-size:max(28px,calc(14px / var(--ss-canvas-scale,1))); width:var(--cue-size); height:var(--cue-size); top:auto; bottom:auto; left:auto; right:auto; border-radius:0; background:none; color:var(--ss-port-color); pointer-events:none; }
.ss-port-direction svg { width:100%; height:100%; stroke-width:3; }
.ss-port-direction svg path { stroke-width:3; }
.ss-port-connector--left .ss-port-direction { left:calc(50% + 4px); top:50%; transform:translateY(-50%); }
.ss-port-connector--right .ss-port-direction { right:calc(50% + 4px); top:50%; transform:translateY(-50%); }
.ss-port-connector--top .ss-port-direction { top:calc(50% + 4px); left:50%; transform:translateX(-50%); }
.ss-port-connector--bottom .ss-port-direction { bottom:calc(50% + 4px); left:50%; transform:translateX(-50%); }
.ss-v2 .ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-card-flow { display:contents; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-card-ports { position:absolute; left:24px; right:64px; height:252px; }
.ss-grid-node--resource:is([data-rotation="90"],[data-rotation="270"]) .ss-card-ports { height:228px; }
.ss-grid-node[data-rotation="90"] .ss-port-inputs, .ss-grid-node[data-rotation="270"] .ss-port-outputs { top:0; }
.ss-grid-node[data-rotation="90"] .ss-port-outputs, .ss-grid-node[data-rotation="270"] .ss-port-inputs { bottom:0; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-card-ports h3 { top:10px; left:0; font-size:12px; }
.ss-grid-node[data-rotation="90"] .ss-port-outputs h3, .ss-grid-node[data-rotation="270"] .ss-port-inputs h3 { top:auto; bottom:10px; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-card-rate { top:36px; width:144px; height:216px; grid-template-columns:minmax(0,1fr); justify-items:center; align-content:center; text-align:center; gap:2px; padding:0 6px; }
.ss-grid-node[data-rotation="90"] .ss-port-outputs .ss-card-rate, .ss-grid-node[data-rotation="270"] .ss-port-inputs .ss-card-rate { top:0; }
.ss-grid-node--resource:is([data-rotation="90"],[data-rotation="270"]) .ss-card-rate { height:192px; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-card-rate > img { position:static; transform:none; grid-column:1; grid-row:auto; width:var(--ss-item-size); height:var(--ss-item-size); }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-card-rate > :is(.ss-rate-name,.ss-quantity,.ss-rate-detail) { grid-column:1; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-rate-detail { justify-content:center; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) :is(.ss-card-rate,.ss-zoom-rate) > .ss-flow-meter { grid-column:1; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-card-header { top:var(--ss-header-top); right:48px; height:72px; border-radius:0; border-top:1px solid var(--ss-border); }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-card-header .ss-node-title { display:none; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-card-machine { white-space:normal; font-size:17px; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-card-footer { top:calc(var(--ss-header-top) + 72px); right:48px; bottom:auto; border-radius:0; border-bottom:1px solid var(--ss-border); }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-vertical-title { position:absolute; display:block; top:0; bottom:0; right:0; width:48px; padding:20px 9px; border-left:1px solid var(--ss-border); border-radius:0 8px 8px 0; background:var(--ss-sidebar); writing-mode:vertical-rl; text-orientation:mixed; text-align:center; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:22px; font-weight:600; line-height:28px; }
.ss-grid-node[data-rotation="270"] .ss-vertical-title { left:0; right:auto; border-left:0; border-right:1px solid var(--ss-border); border-radius:8px 0 0 8px; }
.ss-grid-node[data-rotation="270"] :is(.ss-card-ports,.ss-zoom-inputs,.ss-zoom-outputs) { left:64px; right:24px; }
.ss-grid-node[data-rotation="270"] :is(.ss-card-header,.ss-card-footer,.ss-zoom-header) { left:48px; right:0; }
.ss-grid-node[data-rotation="180"] .ss-card-header { top:auto; bottom:0; border-bottom:0; border-top:1px solid var(--ss-border); border-radius:0 0 8px 8px; }
.ss-grid-node[data-rotation="180"] .ss-card-footer { top:0; bottom:auto; border-top:0; border-bottom:1px solid var(--ss-border); border-radius:8px 8px 0 0; }
.ss-grid-node[data-rotation="180"] :is(.ss-card-flow,.ss-zoom-flow) { top:72px; }
.ss-v2 .ss-zoom-settings { display:flex; align-items:center; justify-content:center; position:absolute; top:18px; right:16px; z-index:5; width:32px; height:32px; padding:7px; border:0; border-radius:5px; background:transparent; color:var(--ss-muted); cursor:pointer; }
.ss-zoom-settings svg { width:100%; height:100%; pointer-events:none; }
.ss-zoom-settings:hover { color:var(--ss-text); background:var(--ss-raised); }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-zoom-settings { top:calc(var(--ss-header-top) + 18px); right:64px; }
.ss-grid-node[data-rotation="270"] .ss-zoom-settings { right:16px; }
.ss-grid-node[data-rotation="180"] .ss-zoom-settings { top:calc(100% - 54px); }
.ss-note-preview { text-align:left; }
.ss-v2 .ss-node-select.ss-card-overview { display:none; }
.ss-v2 :is([data-zoom-detail=overview],[data-zoom-detail=compact],[data-zoom-detail=map]) .ss-node-body > :is(.ss-card-header,.ss-card-flow) { visibility:hidden; }
.ss-v2 :is([data-zoom-detail=overview],[data-zoom-detail=compact],[data-zoom-detail=map]) .ss-card-footer { display:none; }
.ss-v2 :is([data-zoom-detail=overview],[data-zoom-detail=compact]) .ss-vertical-title { background:transparent; border-color:transparent; }
.ss-v2 :is([data-zoom-detail=overview],[data-zoom-detail=compact],[data-zoom-detail=map]) .ss-card-overview { position:absolute; inset:0; display:block; width:100%; height:100%; overflow:visible; text-align:left; }
.ss-zoom-header { position:absolute; top:0; left:0; right:0; height:72px; display:flex; align-items:center; gap:12px; padding:12px 56px 12px 16px; }
.ss-zoom-header > img { width:44px; height:44px; object-fit:contain; flex-shrink:0; }
.ss-zoom-type { font-size:24px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ss-zoom-flow { position:absolute; top:96px; left:48px; right:48px; height:var(--ss-flow-height); display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:64px; }
.ss-zoom-inputs, .ss-zoom-outputs { position:relative; border:0; min-width:0; }
.ss-zoom-flow-caption { position:absolute; top:-24px; font-size:14px; font-weight:500; color:var(--ss-muted); letter-spacing:.04em; }
.ss-zoom-rate { position:absolute; left:0; width:100%; height:144px; display:grid; grid-template-columns:var(--ss-overview-item-size) minmax(0,1fr); gap:2px 9px; align-content:center; align-items:center; color:var(--ss-text); }
.ss-grid-node--resource .ss-zoom-rate { height:144px; }
.ss-zoom-rate > img { position:absolute; left:0; top:50%; transform:translateY(-50%); width:var(--ss-overview-item-size); height:var(--ss-overview-item-size); object-fit:contain; }
.ss-zoom-rate > b { grid-column:2; font-size:var(--ss-main-rate-size); line-height:1.15; white-space:nowrap; font-variant-numeric:tabular-nums; }
.ss-zoom-rate .ss-rate-name { font-size:18px; }
.ss-v2 .ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-zoom-flow { display:contents; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) :is(.ss-zoom-inputs,.ss-zoom-outputs) { position:absolute; left:24px; right:64px; height:264px; }
.ss-grid-node[data-rotation="90"] .ss-zoom-inputs, .ss-grid-node[data-rotation="270"] .ss-zoom-outputs { top:0; }
.ss-grid-node[data-rotation="90"] .ss-zoom-outputs, .ss-grid-node[data-rotation="270"] .ss-zoom-inputs { bottom:0; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-zoom-header { top:var(--ss-header-top); right:48px; }
.ss-grid-node[data-rotation="270"] .ss-zoom-header { left:48px; right:0; }
.ss-grid-node[data-rotation="270"] :is(.ss-zoom-inputs,.ss-zoom-outputs) { left:64px; right:24px; }
.ss-grid-node[data-rotation="180"] .ss-zoom-header { top:auto; bottom:0; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-zoom-flow-caption { top:10px; left:0; font-size:12px; }
.ss-grid-node[data-rotation="90"] .ss-zoom-outputs .ss-zoom-flow-caption, .ss-grid-node[data-rotation="270"] .ss-zoom-inputs .ss-zoom-flow-caption { top:auto; bottom:10px; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-zoom-type { display:none; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-zoom-rate { top:48px; width:144px; height:192px; grid-template-columns:minmax(0,1fr); justify-items:center; text-align:center; gap:3px; padding:0 6px; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-zoom-rate > :is(img,b,.ss-rate-name) { grid-column:1; grid-row:auto; }
.ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-zoom-rate > img { position:static; transform:none; }
/* Artwork sits toward the port; labels and rates face into the card. */
.ss-grid-node[data-rotation="0"] :is(.ss-port-outputs,.ss-zoom-outputs),
.ss-grid-node[data-rotation="180"] :is(.ss-port-inputs,.ss-zoom-inputs) { text-align:right; }
.ss-grid-node[data-rotation="0"] :is(.ss-port-outputs h3,.ss-zoom-outputs .ss-zoom-flow-caption),
.ss-grid-node[data-rotation="180"] :is(.ss-port-inputs h3,.ss-zoom-inputs .ss-zoom-flow-caption) { right:0; }
.ss-grid-node[data-rotation="0"] .ss-port-outputs .ss-card-rate,
.ss-grid-node[data-rotation="180"] .ss-port-inputs .ss-card-rate { grid-template-columns:minmax(0,1fr) var(--ss-item-size); justify-items:end; }
.ss-grid-node[data-rotation="0"] .ss-zoom-outputs .ss-zoom-rate,
.ss-grid-node[data-rotation="180"] .ss-zoom-inputs .ss-zoom-rate { grid-template-columns:minmax(0,1fr) var(--ss-overview-item-size); justify-items:end; }
.ss-grid-node[data-rotation="0"] :is(.ss-port-outputs,.ss-zoom-outputs) :is(.ss-card-rate,.ss-zoom-rate) > img,
.ss-grid-node[data-rotation="180"] :is(.ss-port-inputs,.ss-zoom-inputs) :is(.ss-card-rate,.ss-zoom-rate) > img { left:auto; right:0; }
.ss-grid-node[data-rotation="0"] :is(.ss-port-outputs,.ss-zoom-outputs) :is(.ss-rate-name,.ss-card-rate > .ss-quantity,.ss-zoom-rate > b,.ss-rate-detail,.ss-card-rate > .ss-flow-meter,.ss-zoom-rate > .ss-flow-meter),
.ss-grid-node[data-rotation="180"] :is(.ss-port-inputs,.ss-zoom-inputs) :is(.ss-rate-name,.ss-card-rate > .ss-quantity,.ss-zoom-rate > b,.ss-rate-detail,.ss-card-rate > .ss-flow-meter,.ss-zoom-rate > .ss-flow-meter) { grid-column:1; }
.ss-grid-node[data-rotation="0"] .ss-port-outputs .ss-rate-detail,
.ss-grid-node[data-rotation="180"] .ss-port-inputs .ss-rate-detail { justify-content:flex-end; }
.ss-grid-node[data-rotation="90"] .ss-port-outputs .ss-rate-name,
.ss-grid-node[data-rotation="270"] .ss-port-inputs .ss-rate-name { grid-row:1; }
.ss-grid-node[data-rotation="90"] .ss-port-outputs .ss-card-rate > .ss-quantity,
.ss-grid-node[data-rotation="270"] .ss-port-inputs .ss-card-rate > .ss-quantity { grid-row:2; }
.ss-grid-node[data-rotation="90"] .ss-port-outputs .ss-rate-detail,
.ss-grid-node[data-rotation="270"] .ss-port-inputs .ss-rate-detail { grid-row:3; }
.ss-grid-node[data-rotation="90"] .ss-port-outputs .ss-card-rate > .ss-flow-meter,
.ss-grid-node[data-rotation="270"] .ss-port-inputs .ss-card-rate > .ss-flow-meter { grid-row:4; }
.ss-grid-node[data-rotation="90"] .ss-port-outputs .ss-card-rate > img,
.ss-grid-node[data-rotation="270"] .ss-port-inputs .ss-card-rate > img { grid-row:5; }
.ss-grid-node[data-rotation="90"] .ss-zoom-outputs .ss-rate-name,
.ss-grid-node[data-rotation="270"] .ss-zoom-inputs .ss-rate-name { grid-row:1; }
.ss-grid-node[data-rotation="90"] .ss-zoom-outputs .ss-zoom-rate > b,
.ss-grid-node[data-rotation="270"] .ss-zoom-inputs .ss-zoom-rate > b { grid-row:2; }
.ss-grid-node[data-rotation="90"] .ss-zoom-outputs .ss-flow-meter,
.ss-grid-node[data-rotation="270"] .ss-zoom-inputs .ss-flow-meter { position:static; grid-column:1; grid-row:3; }
.ss-grid-node[data-rotation="90"] .ss-zoom-outputs .ss-zoom-rate > img,
.ss-grid-node[data-rotation="270"] .ss-zoom-inputs .ss-zoom-rate > img { grid-row:4; }
.ss-grid-node[data-rotation="90"] .ss-zoom-outputs .ss-zoom-rate,
.ss-grid-node[data-rotation="270"] .ss-zoom-inputs .ss-zoom-rate { top:24px; }
/* The vertical resource title already identifies its one item; avoid repeating
   its artwork between the enlarged item band and the title rail. */
.ss-v2 [data-zoom-detail=overview] .ss-grid-node--resource:is([data-rotation="90"],[data-rotation="270"]) .ss-zoom-header { display:none; }
/* Between 25% and 35%, give the artwork and rate the space that unreadably
   small names would occupy. Names and metadata return together at 35%. */
.ss-v2 [data-zoom-detail=overview][data-zoom-badges=false] :is(.ss-zoom-header,.ss-vertical-title,.ss-zoom-flow-caption,.ss-zoom-rate .ss-rate-name,.ss-zoom-rate .ss-flow-meter) { display:none; }
/* Compact cards keep only item artwork, configured totals and edge ports. */
.ss-v2 [data-zoom-detail=compact] .ss-grid-node { --ss-overview-item-size:88px; }
.ss-v2 [data-zoom-detail=compact] :is(.ss-zoom-header,.ss-vertical-title,.ss-zoom-flow-caption,.ss-zoom-rate .ss-rate-name,.ss-zoom-rate .ss-flow-meter) { display:none; }
.ss-v2 [data-zoom-detail=compact] .ss-zoom-settings { visibility:hidden; }
.ss-v2 [data-zoom-detail=compact] .is-selected .ss-zoom-settings { visibility:visible; }
.ss-v2 :is([data-zoom-detail=compact],[data-zoom-detail=overview][data-zoom-badges=false]) .ss-zoom-rate > b { font-size:var(--ss-compact-rate-size); }
.ss-v2 :is([data-zoom-detail=compact],[data-zoom-detail=overview][data-zoom-badges=false]) .ss-grid-node .ss-zoom-rate { grid-template-columns:minmax(0,1fr); justify-items:center; text-align:center; gap:4px; }
.ss-v2 :is([data-zoom-detail=compact],[data-zoom-detail=overview][data-zoom-badges=false]) .ss-grid-node .ss-zoom-rate > :is(img,b) { grid-column:1; }
.ss-v2 :is([data-zoom-detail=compact],[data-zoom-detail=overview][data-zoom-badges=false]) .ss-grid-node .ss-zoom-rate > img { position:static; transform:none; grid-row:1; }
.ss-v2 :is([data-zoom-detail=compact],[data-zoom-detail=overview][data-zoom-badges=false]) .ss-grid-node .ss-zoom-rate > b { grid-row:2; }
.ss-v2 [data-zoom-detail=compact] .ss-zoom-flow { left:56px; right:56px; }
.ss-v2 [data-zoom-detail=compact] .ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) :is(.ss-zoom-inputs,.ss-zoom-outputs) { height:256px; }
.ss-v2 [data-zoom-detail=compact] .ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-zoom-rate { top:96px; height:160px; }
.ss-v2 [data-zoom-detail=compact] .ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-zoom-rate > img { grid-row:1; }
.ss-v2 [data-zoom-detail=compact] .ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-zoom-rate > b { grid-row:2; }
.ss-v2 [data-zoom-detail=compact] .ss-grid-node[data-rotation="90"] .ss-zoom-outputs .ss-zoom-rate > b,
.ss-v2 [data-zoom-detail=compact] .ss-grid-node[data-rotation="270"] .ss-zoom-inputs .ss-zoom-rate > b { grid-row:1; }
.ss-v2 [data-zoom-detail=compact] .ss-grid-node[data-rotation="90"] .ss-zoom-outputs .ss-zoom-rate > img,
.ss-v2 [data-zoom-detail=compact] .ss-grid-node[data-rotation="270"] .ss-zoom-inputs .ss-zoom-rate > img { grid-row:2; }
.ss-v2 [data-zoom-detail=compact] .ss-grid-node[data-rotation="90"] .ss-zoom-outputs .ss-zoom-rate,
.ss-v2 [data-zoom-detail=compact] .ss-grid-node[data-rotation="270"] .ss-zoom-inputs .ss-zoom-rate { top:0; }
.ss-v2 :is([data-zoom-detail=compact],[data-zoom-detail=overview][data-zoom-badges=false]) .ss-grid-node:is([data-rotation="90"],[data-rotation="270"]) .ss-zoom-rate > b { font-size:var(--ss-compact-vertical-rate-size); }
.ss-v2 :is([data-zoom-detail=compact],[data-zoom-detail=overview][data-zoom-badges=false]) :is(.ss-grid-node[data-rotation="90"] .ss-zoom-outputs,.ss-grid-node[data-rotation="270"] .ss-zoom-inputs) .ss-zoom-rate > b { grid-row:1; }
.ss-v2 :is([data-zoom-detail=compact],[data-zoom-detail=overview][data-zoom-badges=false]) :is(.ss-grid-node[data-rotation="90"] .ss-zoom-outputs,.ss-grid-node[data-rotation="270"] .ss-zoom-inputs) .ss-zoom-rate > img { grid-row:2; }
/* Capacity and meters lead at middle zoom; detailed delivery figures appear
   once there is enough screen space. Resource delivery repeats its one supply. */
.ss-v2 [data-zoom-expanded=false] .ss-node-body .ss-rate-detail,
.ss-grid-node--resource .ss-node-body .ss-rate-detail { display:none; }
.ss-node-settings-dialog { width:min(620px,calc(100% - 24px)); max-height:calc(100dvh - 24px); overflow:auto; }
.ss-node-settings { padding:16px; border:1px solid var(--ss-border); border-radius:8px; background:var(--ss-surface); }
.ss-node-settings .ss-card-header { position:static; height:auto; min-height:72px; padding:0 0 14px; background:none; border-radius:0; flex-wrap:wrap; }
.ss-node-settings .ss-card-header > img { width:44px; height:44px; object-fit:contain; }
.ss-node-settings .ss-card-identity { min-width:0; }
.ss-node-settings .ss-node-title { display:none; }
.ss-node-settings .ss-card-machine { display:none; }
.ss-extraction-settings { display:grid; gap:14px; margin:0 0 16px; }
.ss-extractor-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:12px; border:1px solid var(--ss-border); border-radius:6px; min-width:0; }
.ss-extractor-row legend { padding:0 6px; color:var(--ss-muted); font-size:12px; }
.ss-extraction-settings .ss-card-field { min-width:0; }
.ss-extraction-settings :is(input,select) { width:100%; min-width:0; min-height:40px; background:var(--ss-bg); color:var(--ss-text); border:1px solid var(--ss-border); border-radius:4px; padding:6px 8px; }
.ss-extractor-remove { justify-self:start; }
.ss-extraction-total { margin:0; color:var(--ss-muted); font-size:14px; }
.ss-card-power { flex-basis:100%; margin:0; padding:0; background:none; color:var(--ss-muted); }
.ss-card-power .ss-quantity b { font-size:14px; font-weight:400; }
.ss-card-settings { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:14px 0; border:0; border-bottom:1px solid var(--ss-border); margin:0; }
.ss-v2 .ss-tuning-field { display:grid; position:relative; grid-template-columns:16px minmax(0,1fr); gap:5px; min-width:0; padding:0; border:0; background:none; }
.ss-tuning-field > svg { width:16px; height:16px; grid-row:2; color:var(--ss-muted); }
.ss-card-field > :is(span,label) { font-size:12px; }
.ss-tuning-field > :is(span,label) { grid-column:1 / -1; }
.ss-v2 .ss-tuning-field input, .ss-v2 .ss-tuning-field select { grid-row:2; width:100%; min-width:0; padding:7px; min-height:36px; font-size:17px; border:1px solid var(--ss-border); border-radius:4px; background:var(--ss-sidebar); color:var(--ss-text); }
.ss-tuning-field .ss-tuning-unit { display:none; }
.ss-v2 select option { background:var(--ss-sidebar); color:var(--ss-text); }
.ss-settings-flow { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; margin-top:18px; }
.ss-settings-flow > section { min-width:0; }
.ss-settings-flow h3 { margin:0 0 12px; font-size:12px; color:var(--ss-muted); font-weight:500; text-transform:uppercase; }
.ss-settings-rate { --ss-item-size:44px; position:relative; height:auto; min-height:96px; padding-bottom:12px; margin:0 0 8px; }
.ss-settings-rate > img { position:static; transform:none; grid-column:1; grid-row:1 / 4; }
.ss-settings-rate .ss-flow-meter { position:static; grid-column:2; margin-top:4px; }
.ss-settings-rate .ss-rate-name { font-size:14px; }
.ss-settings-rate .ss-quantity b { font-size:23px; }
.ss-settings-rate .ss-rate-detail .ss-quantity b { font-size:14px; }
.ss-settings-outputs h3 { text-align:right; }
.ss-settings-outputs .ss-settings-rate { grid-template-columns:minmax(0,1fr) var(--ss-item-size); justify-items:end; text-align:right; }
.ss-settings-outputs .ss-settings-rate > img { grid-column:2; }
.ss-settings-outputs .ss-settings-rate > :is(.ss-rate-name,.ss-quantity,.ss-rate-detail,.ss-flow-meter) { grid-column:1; }
.ss-settings-outputs .ss-rate-detail, .ss-settings-outputs .ss-output-destinations { justify-content:flex-end; }
.ss-output-destinations { grid-column:1 / -1; display:flex; gap:8px; margin:12px 0 0; }
.ss-v2 .ss-output-destinations button { display:flex; align-items:center; gap:6px; min-height:36px; padding:6px 9px; border:1px solid var(--ss-border); border-radius:6px; background:var(--ss-sidebar); color:var(--ss-muted); cursor:pointer; }
.ss-output-destinations img { width:20px; height:20px; object-fit:contain; }
.ss-v2 .ss-output-destinations button[aria-pressed=true] { color:var(--ss-text); border-color:var(--ss-muted); background:var(--ss-raised); }
.ss-v2 .ss-control-caption { position:static; transform:none; font-size:12px; line-height:1.3; color:inherit; }
.ss-per-machine-detail { grid-column:1 / -1; padding:10px 0; color:var(--ss-muted); border-top:1px solid var(--ss-border); font-size:12px; }
.ss-per-machine-detail summary { cursor:pointer; }
.ss-per-machine-group { margin-top:12px; }
.ss-per-machine-row { display:flex; justify-content:space-between; gap:16px; margin-top:6px; color:var(--ss-text); }
.ss-settings-per-machine { font-variant-numeric:tabular-nums; white-space:nowrap; color:var(--ss-muted); }
.ss-v2 .ss-card-routing { display:flex; flex-wrap:wrap; align-items:center; gap:6px; border:0; border-top:1px solid var(--ss-border); margin-top:8px; padding-top:10px; }
.ss-card-menu { position:relative; }
.ss-v2 .ss-card-menu summary, .ss-v2 .ss-card-routing .ss-notes-button { display:flex; align-items:center; justify-content:center; gap:6px; width:auto; height:auto; min-height:36px; padding:6px 8px; border:0; border-radius:4px; background:transparent; color:var(--ss-muted); list-style:none; cursor:pointer; }
.ss-card-menu summary::-webkit-details-marker { display:none; }
.ss-card-menu svg, .ss-notes-button > svg, .ss-status-artwork { display:block; width:16px; height:16px; flex-shrink:0; }
.ss-status-artwork > svg { width:100%; height:100%; }
.ss-v2 .ss-status-artwork--in_progress, .ss-v2 .ss-build-in_progress > summary, .ss-v2 .ss-zoom-status.ss-build-in_progress { color:light-dark(#956000,#f3ba55); }
.ss-v2 .ss-status-artwork--complete, .ss-v2 .ss-build-complete > summary, .ss-v2 .ss-zoom-status.ss-build-complete { color:light-dark(#197047,#79d6a3); }
.ss-v2 .ss-card-routing .ss-notes-button.has-notes { color:var(--ss-accent); background:light-dark(#ae790014,#ffcb2112); }
.ss-card-menu summary:hover, .ss-v2 .ss-card-routing .ss-notes-button:hover { background:var(--ss-raised); color:var(--ss-text); }
.ss-card-menu-options { position:absolute; z-index:8; top:calc(100% + 6px); left:0; display:grid; grid-template-columns:1fr; width:max-content; max-width:280px; gap:4px; padding:6px; border:1px solid var(--ss-border); border-radius:7px; background:var(--ss-sidebar); box-shadow:0 4px 12px #0004; }
.ss-v2 .ss-card-menu-options button { display:flex; align-items:center; gap:8px; min-height:36px; padding:7px 9px; text-align:left; border:1px solid transparent; border-radius:4px; background:var(--ss-surface); color:var(--ss-text); cursor:pointer; font-size:12px; }
.ss-card-menu-options button[aria-pressed=true] { border-color:var(--ss-muted); }
.ss-node-settings .ss-card-routing:has(details[open]) { padding-bottom:210px; }
.ss-node-settings-footer { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; padding-top:16px; }
.ss-node-settings-footer p { flex:1 1 100%; color:var(--ss-muted); font-size:12px; }
.ss-node-settings-footer p.ss-panel-error { color:var(--ss-flow-bad); }
/* The unscaled inspector gives each material a full row, keeping long names
   and large rates readable without squeezing the planning canvas. */
.ss-factory-inspector .ss-node-settings { border:0; border-radius:0; background:none; padding:0; }
.ss-factory-inspector .ss-card-identity { flex:1; }
.ss-factory-inspector .ss-node-settings .ss-card-machine { display:block; margin-bottom:6px; font-size:11px; color:var(--ss-muted); }
.ss-v2 .ss-factory-inspector .ss-tuning-field { grid-template-columns:minmax(0,1fr); }
.ss-factory-inspector .ss-tuning-field > svg { display:none; }
.ss-v2 .ss-factory-inspector .ss-tuning-field :is(input,select) { font-size:16px; }
.ss-factory-inspector .ss-settings-flow { grid-template-columns:minmax(0,1fr); gap:12px; }
.ss-factory-inspector .ss-settings-rate { --ss-item-size:40px; min-height:76px; }
.ss-factory-inspector .ss-settings-rate > img { width:40px; height:40px; }
.ss-factory-inspector .ss-settings-flow .ss-quantity b { overflow-wrap:anywhere; }
.ss-factory-inspector .ss-card-menu-options { width:max-content; max-width:300px; }
.ss-factory-inspector .ss-card-routing { column-gap:0; }
/* Quiet the network smoothly at map zoom while keeping inspection cues clear. */
.ss-belt { stroke:var(--ss-flow-good); stroke-opacity:clamp(.28,calc(.28 + .28 * var(--ss-canvas-scale,1)),.56); stroke-width:calc(1.7px / var(--ss-canvas-scale,1)); }
.ss-belt.is-shortage { stroke:var(--ss-flow-bad); }
.ss-belt:is(.is-hovered,.is-related):not(.is-selected) { stroke-opacity:.8; }
.ss-belt.ss-belt-preview { stroke:var(--ss-accent); stroke-opacity:1; }
.ss-belt-flow { stroke-width:calc(1.7px / var(--ss-canvas-scale,1)); opacity:clamp(.07,calc(.07 + .18 * var(--ss-canvas-scale,1)),.25); }
.ss-belt-flow.is-selected { opacity:.25; }
.ss-belt-underlay { fill:none; stroke:var(--ss-bg); stroke-width:min(24px,calc(4.5px / var(--ss-canvas-scale,1))); stroke-linejoin:round; pointer-events:none; }
.ss-v2 .ss-belt-bundle { position:absolute; z-index:3; display:flex; align-items:center; justify-content:center; width:32px; height:28px; min-height:0; padding:0; border:0; background:none; color:var(--ss-muted); font-size:10px; line-height:12px; transform:translate(-50%,-50%) scale(calc(1 / var(--ss-canvas-scale,1))); cursor:pointer; }
.ss-bundle-count { padding:2px 4px; border:1px solid var(--ss-border); border-radius:8px; background:var(--ss-bg); }
.ss-belt-bundle:hover,.ss-belt-bundle:focus-visible { color:var(--ss-accent); }
.ss-belt-bundle:is(:hover,:focus-visible) .ss-bundle-count { border-color:var(--ss-accent); }
@media(pointer:coarse) { .ss-v2 .ss-belt-bundle { width:44px; height:44px; } }
[data-zoom-badges=false] .ss-belt-bundle { display:none; }
.ss-v2 .ss-grid-node.is-trace-muted { opacity:.3; }
:is(.ss-belt,.ss-belt-flow,.ss-belt-label).is-trace-muted { opacity:.12; }
.ss-belt.is-hovered { stroke-opacity:1; stroke-width:calc(2.5px / var(--ss-canvas-scale,1)); }
.ss-v2 .ss-grid-node.is-trace-endpoint > .ss-node-body { outline:calc(2px / var(--ss-canvas-scale,1)) solid var(--ss-accent); }
.ss-belt.is-selected { stroke:var(--ss-accent); stroke-opacity:1; }
.ss-v2 .ss-belt-label.is-compact { gap:0; padding:3px 4px; }
.ss-belt-label.is-compact img { display:none; }
.ss-v2 .ss-grid-node .ss-zoom-settings { top:calc(-28px / var(--ss-canvas-scale,1)); right:0; width:calc(24px / var(--ss-canvas-scale,1)); height:calc(24px / var(--ss-canvas-scale,1)); padding:calc(4px / var(--ss-canvas-scale,1)); background:var(--ss-sidebar); }
.ss-map-product { display:none; }
.ss-v2 [data-zoom-detail=map] .ss-zoom-flow, .ss-v2 [data-zoom-detail=map] .ss-zoom-header > :not(.ss-map-product) { display:none; }
.ss-v2 [data-zoom-detail=map] .ss-zoom-header { inset:0; height:auto; padding:16px; justify-content:center; }
.ss-v2 [data-zoom-detail=map] .ss-zoom-header > .ss-map-product { display:block; width:180px; height:180px; }
.ss-v2 [data-zoom-detail=map] :is(.ss-vertical-title,.ss-card-footer) { display:none; }
/* One title edge anchors orientation at every scale without using port colours. */
.ss-v2 .ss-grid-node .ss-orientation-edge { display:block; position:absolute; z-index:2; pointer-events:none; background:light-dark(#647783,#9aabb6); opacity:.8; border:0; border-radius:0; }
.ss-v2 .ss-grid-node[data-rotation="0"] .ss-orientation-edge { inset:0 8px auto; height:max(3px,calc(1.5px / var(--ss-canvas-scale,1))); }
.ss-v2 .ss-grid-node[data-rotation="180"] .ss-orientation-edge { inset:auto 8px 0; height:max(3px,calc(1.5px / var(--ss-canvas-scale,1))); }
.ss-v2 .ss-grid-node[data-rotation="90"] .ss-orientation-edge { inset:8px 0 8px auto; width:max(3px,calc(1.5px / var(--ss-canvas-scale,1))); }
.ss-v2 .ss-grid-node[data-rotation="270"] .ss-orientation-edge { inset:8px auto 8px 0; width:max(3px,calc(1.5px / var(--ss-canvas-scale,1))); }
.ss-v2 [data-zoom-detail=map] .ss-port-direction { display:none; }
.ss-v2 .ss-factory-lock { display:flex; align-items:center; gap:6px; padding:6px 8px; min-height:36px; border:0; border-radius:4px; color:var(--ss-muted); background:transparent; cursor:pointer; }
.ss-factory-lock svg { width:16px; height:16px; }
.ss-v2 .ss-factory-lock[aria-pressed=true], .ss-v2 .ss-zoom-lock[aria-pressed=true] { color:var(--ss-text); }
.ss-v2 .ss-factory-badges { position:absolute; z-index:5; top:calc(-27px / var(--ss-canvas-scale,1)); right:calc(28px / var(--ss-canvas-scale,1)); display:flex; align-items:center; gap:calc(4px / var(--ss-canvas-scale,1)); }
.ss-v2 .ss-factory-badges > button { display:flex; align-items:center; justify-content:center; visibility:visible; width:calc(22px / var(--ss-canvas-scale,1)); height:calc(22px / var(--ss-canvas-scale,1)); min-height:0; padding:calc(4px / var(--ss-canvas-scale,1)); border:0; border-radius:4px; background:var(--ss-sidebar); color:var(--ss-text); cursor:pointer; }
.ss-v2 .ss-factory-badges > .ss-zoom-notes { color:var(--ss-accent); }
.ss-factory-badges :is(svg,.ss-status-artwork) { width:100%; height:100%; }
/* Metadata is useful once cards are readable, without overwhelming the map. */
.ss-v2 [data-zoom-badges=false] .ss-factory-badges { display:none; }
.ss-v2 .ss-lock-cue { display:none; position:absolute; z-index:5; top:calc(2px / var(--ss-canvas-scale,1)); right:calc(2px / var(--ss-canvas-scale,1)); width:calc(10px / var(--ss-canvas-scale,1)); height:calc(10px / var(--ss-canvas-scale,1)); color:var(--ss-text); background:var(--ss-sidebar); border-radius:2px; pointer-events:none; }
.ss-lock-cue svg { width:100%; height:100%; }
.ss-v2 [data-zoom-badges=false] .ss-lock-cue { display:block; }
.ss-v2 [data-locked=true] { cursor:default; }
.ss-v2 [data-locked=true] .ss-port-connector { cursor:default; }
.ss-companion-lock-permission { display:flex; gap:8px; align-items:center; font-size:12px; color:var(--ss-muted); }
.ss-companion-lock-permission input { width:16px; }
@media(pointer:coarse) {
  .ss-v2 .ss-grid-node .ss-port-connector { width:44px; height:44px; }
  .ss-port-connector--left { left:-22px; } .ss-port-connector--right { right:-22px; }
  .ss-port-connector--top { top:-22px; } .ss-port-connector--bottom { bottom:-22px; }
  .ss-v2 .ss-card-menu summary, .ss-v2 .ss-card-routing .ss-notes-button, .ss-v2 .ss-card-menu-options button { min-height:44px; }
  .ss-v2 .ss-grid-node .ss-zoom-settings { top:calc(-48px / var(--ss-canvas-scale,1)); width:calc(44px / var(--ss-canvas-scale,1)); height:calc(44px / var(--ss-canvas-scale,1)); padding:calc(10px / var(--ss-canvas-scale,1)); }
  .ss-v2 .ss-factory-badges { top:calc(-48px / var(--ss-canvas-scale,1)); right:calc(48px / var(--ss-canvas-scale,1)); }
  .ss-v2 .ss-factory-badges > button { width:calc(44px / var(--ss-canvas-scale,1)); height:calc(44px / var(--ss-canvas-scale,1)); padding:calc(10px / var(--ss-canvas-scale,1)); }
  .ss-v2 [data-zoom-detail=overview] .ss-factory-badges { display:none; }
  .ss-v2 [data-zoom-detail=overview] .ss-lock-cue { display:block; }
  .ss-v2 [data-zoom-detail=overview][data-zoom-badges=true] .ss-grid-node[data-locked=true] .ss-zoom-header { padding-right:max(16px,calc(14px / var(--ss-canvas-scale,1))); }
}
@media(max-width:560px) {
  .ss-node-settings-dialog { padding:16px; }
  .ss-node-settings { padding:12px; }
  .ss-settings-flow { grid-template-columns:1fr; gap:12px; }
  .ss-settings-rate { --ss-item-size:40px; }
  .ss-settings-rate > img { width:40px; height:40px; }
  .ss-settings-flow .ss-quantity b { overflow-wrap:anywhere; }
  .ss-node-settings .ss-card-menu-options { max-width:calc(100vw - 80px); left:auto; right:0; }
}

.ss-card-header, .ss-zoom-header { padding-right:16px; }
/* Counts occupy the identity band at every readable zoom, rather than competing
   with material totals or the metadata buttons above the card. */
.ss-machine-count { flex-shrink:0; margin-left:auto; white-space:nowrap; font-variant-numeric:tabular-nums; font-size:max(24px,calc(12px / var(--ss-canvas-scale,1))); line-height:1; color:var(--ss-text); }
.ss-node-settings .ss-machine-count { display:none; }
.ss-v2 [data-zoom-detail=overview][data-zoom-badges=false] .ss-grid-node--factory .ss-zoom-header { display:flex; }
.ss-v2 [data-zoom-detail=overview][data-zoom-badges=false] .ss-grid-node--factory .ss-zoom-header > :not(.ss-machine-count) { display:none; }
.ss-v2 [data-zoom-detail=overview][data-zoom-badges=false] .ss-machine-count { margin:0 auto; }
.ss-v2 .ss-stepped-input { appearance:textfield; padding-right:30px; }
.ss-stepped-input::-webkit-inner-spin-button, .ss-stepped-input::-webkit-outer-spin-button { appearance:none; margin:0; }
.ss-number-steps { position:absolute; right:1px; bottom:1px; height:34px; width:28px; display:grid; grid-template-rows:1fr 1fr; }
.ss-v2 .ss-number-steps button { min-height:0; padding:0; border:0; border-radius:3px; background:transparent; color:var(--ss-muted); font-size:15px; line-height:1; cursor:pointer; }
.ss-v2 .ss-number-steps button:hover { background:var(--ss-raised); color:var(--ss-text); }
.ss-number-steps button:disabled { opacity:.4; cursor:default; }
