/* Orbital factory operations, IND-09. Shared station assets and live server state. */
.modal.factory-modal {width:min(1500px,97vw);max-width:none;padding:0;max-height:95vh;overflow:auto;background:#070f18;border:1px solid #425460;}
#factory-operations {font:14px/1.5 'Segoe UI',sans-serif;color:#dbe4e6;}
#factory-operations * {box-sizing:border-box;}
#factory-operations h2,#factory-operations h3 {font-family:Bahnschrift,'Segoe UI',sans-serif;letter-spacing:0;text-transform:none;color:#ebe9dc;margin:0 0 12px;}
#factory-operations h2 {font-size:27px;margin:3px 0;}
#factory-operations h3 {font-size:20px;}
#factory-operations small {color:#92a9b7;font-size:11px;}
#factory-operations button,#factory-operations input,#factory-operations select {font:inherit;color:#dbe4e6;background:#152632;border:1px solid #395361;border-radius:3px;padding:8px 10px;}
#factory-operations button {cursor:pointer;}
#factory-operations button:hover:not(:disabled),#factory-operations button[aria-pressed=true] {border-color:#e5bb76;background:#263a44;}
#factory-operations button:disabled {opacity:.4;cursor:default;}
#factory-operations :focus-visible {outline:2px solid #9adae5;outline-offset:3px;}
#factory-operations .primary {background:#e5bb76;color:#101b25;border-color:#e5bb76;font-weight:600;}
#factory-operations button.primary:hover:not(:disabled) {background:#f0cb8d;color:#101b25;}
.factory-head {display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 24px;border-bottom:1px solid #30434e;}
.factory-head nav {display:flex;gap:8px;flex-wrap:wrap;}
.factory-ribbon {display:flex;flex-wrap:wrap;gap:24px;padding:10px 24px;color:#a2bac6;background:#10212c;font-variant-numeric:tabular-nums;}
.factory-ribbon b {font-weight:500;color:#e5bb76;}
.factory-layout {display:grid;grid-template-columns:minmax(0,1fr) 335px;min-height:640px;}
.factory-space {position:relative;overflow:auto;background:radial-gradient(ellipse at 27% 45%,#142b39 0,transparent 53%),#070f18;}
.factory-scene {position:relative;min-width:810px;height:630px;}
.factory-scene>svg {position:absolute;width:100%;height:100%;inset:0;pointer-events:none;}
.factory-flow {fill:none;stroke:#365363;stroke-width:2;}
.factory-flow.active {stroke:#92bdb7;stroke-dasharray:5 12;animation:factory-flow 3s linear infinite;}
.factory-node {position:absolute;transform:translate(-50%,-50%);text-align:center!important;background:transparent!important;border:1px solid transparent!important;width:155px;min-height:114px;padding:8px!important;}
.factory-node:hover,.factory-node[aria-pressed=true] {background:#152632b8!important;border-color:#b99461!important;}
.factory-node img {display:block;width:126px;height:88px;object-fit:contain;margin:auto;filter:drop-shadow(0 4px 16px #000);}
.factory-node strong {display:block;font:15px Bahnschrift,'Segoe UI',sans-serif;color:#e7e8df;}
.factory-node small {display:block;max-width:140px;margin:5px auto 0;line-height:1.35;}
.factory-node.working img {filter:drop-shadow(0 0 12px #5e9b9a88);}
.factory-node meter {display:block;width:105px;height:5px;margin:7px auto;accent-color:#8eb89e;}
.factory-buffer {left:17%;top:46%;width:195px;}
.factory-buffer img {width:174px;height:136px;}
.factory-space-label {position:absolute;left:27px;top:20px;letter-spacing:1.8px;text-transform:uppercase;font-size:10px;color:#7b99a9;}
.factory-scene-note {position:absolute;left:28px;bottom:18px;color:#87a2b1;font-size:11px;max-width:550px;}
.factory-inspector {padding:23px;background:#101d27;border-left:1px solid #344651;min-width:0;}
.factory-inspector p {color:#a9bdc7;font-size:12px;margin:0 0 14px;}
.factory-inspector label {display:flex;flex-direction:column;gap:5px;font-size:12px;margin:10px 0;}
.factory-inspector input,.factory-inspector select {width:100%;min-width:0;}
.factory-inspector .field-pair {display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.factory-inspector .wide {width:100%;margin:8px 0;}
.factory-inspector .rule {padding:13px 0;border-bottom:1px solid #33434e;}
.factory-inspector .rule strong {font-weight:600;display:block;color:#dfd6bd;}
.factory-inspector dl {display:grid;grid-template-columns:1fr auto;gap:5px;font-size:12px;margin:15px 0;}
.factory-inspector dt {color:#9cb6c2;}.factory-inspector dd {margin:0;color:#dfd6bd;font-variant-numeric:tabular-nums;}
.factory-bill {border-left:2px solid #b99c71;padding:10px 12px;margin:14px 0;background:#1a2b35;font-size:12px;}
.factory-log {padding:10px 24px;border-top:1px solid #344651;min-height:42px;color:#b9cccf;font-size:12px;}
.factory-empty {display:grid;place-content:center;text-align:center;min-height:550px;padding:35px;}
.factory-empty img {height:210px;width:100%;object-fit:contain;}
.factory-empty p {max-width:440px;color:#9cb5c3;}
.factory-back {display:none;}
@keyframes factory-flow {to{stroke-dashoffset:-68;}}
@media(max-width:850px) {.factory-layout{grid-template-columns:1fr;}.factory-inspector{border-left:0;border-top:1px solid #344651;}.factory-head{align-items:flex-start;padding:15px;}.factory-head nav{max-width:190px;justify-content:flex-end;}.factory-head nav button{font-size:11px;padding:7px;}.factory-ribbon{gap:12px;padding:10px 15px;font-size:12px;}.factory-back{display:block;margin:0 0 20px!important;}.factory-scene{height:550px;}.factory-space{max-width:100%;}.factory-log{padding:12px 15px;}}
@media(prefers-reduced-motion:reduce) {.factory-flow.active{animation:none;stroke-dasharray:0;}}
