.factory-shell{background:#091525;color:#dfedf7;border:1px solid #284760;border-radius:20px;padding:24px;margin:0 0 24px;overflow:hidden}.factory-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.factory-heading h2{font-size:28px;margin:7px 0}.factory-heading p,.factory-note{color:#95aec4;font-size:12px}.factory-eyebrow{color:#4fdddb;letter-spacing:3px;font-size:10px}.factory-actions{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.factory-actions label{font-size:12px;margin:0}.factory-actions select{display:block;margin-top:5px}.factory-actions button,.factory-actions a,.factory-actions select{background:#142c43;color:#d5eef9;border:1px solid #32516b;border-radius:7px;font-size:12px;padding:9px 12px;text-decoration:none}.factory-canvas{overflow:auto}.factory-canvas svg{display:block;width:100%;min-width:600px;max-height:70vh}.factory-wire{fill:none;stroke-width:1.8;opacity:.25}.factory-flow{fill:none;stroke-width:2;stroke-dasharray:5 28;animation:factory-flow 3s linear infinite;opacity:.8}.factory-beacon{animation:factory-pulse 2.5s ease-in-out infinite}.factory-machine{cursor:pointer;outline:none}.factory-machine:hover>rect,.factory-machine:focus>rect{stroke:#fff;stroke-width:2}.factory-bottom{display:flex;justify-content:space-between;gap:20px;font-size:12px;border-top:1px solid #243e54;padding-top:10px}.factory-bottom span{color:#91b1c5;flex-shrink:0}.factory-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px}.factory-legend span:before{content:'';display:inline-block;width:8px;height:8px;background:var(--status);border-radius:50%;margin-right:7px}.factory-shell:fullscreen{overflow:auto;border-radius:0;padding:30px}.factory-shell:fullscreen .factory-canvas svg{max-height:76vh}.factory-paused *{animation-play-state:paused!important}@keyframes factory-flow{to{stroke-dashoffset:-132}}@keyframes factory-pulse{50%{opacity:.5}}@media(prefers-reduced-motion:reduce){.factory-shell *{animation:none!important}}@media(max-width:700px){.factory-shell{padding:14px}.factory-bottom{flex-direction:column;gap:4px}.factory-heading h2{font-size:23px}}
