:root{color-scheme:dark;--bg:#101512;--panel:#19201b;--raised:#222a23;--line:#30392f;--text:#e5e9dc;--muted:#939d8f;--green:#b7df87;--gold:#d8b77b;--red:#e89f8b;--font:'Space Grotesk','Noto Sans SC',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.65 var(--font)}button,input,select{font:inherit}button{cursor:pointer}button,input,select{border:1px solid var(--line);background:var(--raised);color:var(--text);border-radius:7px;min-height:43px;padding:8px 13px}button:hover{border-color:#82916e;background:#303b2c}button:disabled{cursor:not-allowed;opacity:.42}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:3px}a{color:var(--green)}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1px}h2{font-size:21px}h3{font-size:17px}small,.small{font-size:13px}.muted{color:var(--muted)}.mono{font-family:'Space Grotesk',monospace}.green{color:var(--green)}.gold{color:var(--gold)}.red{color:var(--red)}.primary{background:var(--green);color:#1e2b17;font-weight:700;border-color:var(--green)}.primary:hover{background:#c6ed9e}.plain{background:transparent}.pill{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border:1px solid var(--line);border-radius:5px;font-size:12px;color:var(--muted)}.pill.active{border-color:#697d51;color:var(--green);background:#283320}.icon{width:20px;height:20px;vertical-align:middle;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.layout{display:grid;grid-template-columns:222px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:30px 19px;background:#141a15;z-index:4}.brand{display:flex;align-items:center;gap:11px;padding:0 10px 28px}.brandmark{width:38px;height:38px;background:var(--green);color:#26351c;display:grid;place-items:center;font:bold 27px 'Space Grotesk';border-radius:8px}.brand strong{font-size:21px}.brand small{display:block;color:var(--muted);font:11px 'Space Grotesk';letter-spacing:2px}.nav{display:flex;flex-direction:column;gap:7px}.nav button{background:transparent;border:0;display:flex;align-items:center;gap:13px;text-align:left;padding:12px 15px;color:var(--muted);min-height:48px}.nav button.active{background:#283321;color:var(--green)}.nav button .lock{margin-left:auto;width:14px}.nav-label{font-size:11px;letter-spacing:2px;color:#667261;margin:12px 15px}.side-foot{margin-top:auto;border-top:1px solid var(--line);padding:22px 10px 0}.side-foot .version{margin-top:13px;font-size:12px;color:#687465}.topbar{height:77px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 35px;gap:14px}.topbar .location{display:flex;gap:10px;align-items:center}.stats{display:flex;gap:22px;align-items:center;color:var(--muted);font-size:13px}.stats strong{color:var(--text);font-size:14px;margin-left:6px}.save-dot{width:6px;height:6px;background:var(--green);border-radius:50%;display:inline-block}.workspace{padding:29px 35px 25px;max-width:1500px;margin:auto}.heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px}.heading p{color:var(--muted);margin-top:3px}.heading .eyebrow{font:11px 'Space Grotesk';letter-spacing:3px;color:#7e8b73;margin-bottom:4px}.subtabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:24px}.subtabs button{background:transparent;color:var(--muted);border-color:transparent;display:flex;gap:7px;align-items:center}.subtabs button.active{color:var(--green);border:1px solid #4c5e3b;background:#202a1b}.subtabs button:disabled{opacity:.4}.play-columns{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:23px}.section-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-label span{font-size:13px;color:var(--muted)}.pool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.card{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:20px}.pool{padding:0;overflow:hidden;position:relative}.pool-top{padding:16px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.pool-top .pool-name{display:flex;align-items:center;gap:9px}.pool-top .pool-name .icon{color:#a3bc8c}.pool-visual{height:144px;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#35422b66,transparent 70%)}.pool-visual img{width:66px;height:66px;image-rendering:pixelated;filter:drop-shadow(0 13px 8px #0006);transition:transform .12s}.pool-visual .amount{position:absolute;right:20px;top:16px;color:var(--muted);font-size:13px}.pool-visual .resource-code{position:absolute;left:20px;bottom:10px;font:10px 'Space Grotesk';letter-spacing:2px;color:#64735c}.pool-body{padding:0 20px 19px}.resource-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.resource-title strong{font-size:19px}.resource-title span{color:var(--muted);font-size:12px}.progress{height:5px;background:#30392f;border-radius:5px;overflow:hidden}.progress>div{height:100%;background:var(--green);border-radius:5px;transition:width .12s}.progress-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:8px 0 14px}.pool-actions{display:grid;grid-template-columns:1fr auto;gap:9px}.pool-actions button{min-height:42px}.pool .probe{border-top:1px dashed var(--line);margin:13px 0 0;padding-top:12px;color:#687662;font-size:12px;display:flex;gap:7px;align-items:center}.pool .probe select{min-width:0;max-width:100%;width:100%;min-height:35px;font-size:12px}.rail{display:flex;flex-direction:column;gap:16px}.rail .card{padding:19px}.rail h3{font-size:15px;margin-bottom:15px}.goal-box{border:1px solid #53683c;background:#222d1c;border-radius:8px;padding:15px;margin:10px 0}.goal-box h3{margin:0 0 5px;color:var(--green)}.goal-box p{font-size:13px;color:var(--muted)}.ingredient{display:flex;align-items:center;gap:9px;padding:8px 0;font-size:14px}.ingredient .count{margin-left:auto}.item-icon{width:29px;height:29px;object-fit:contain;image-rendering:pixelated;flex-shrink:0}.full{width:100%}.tool-selector{display:flex;gap:9px;align-items:center;margin-bottom:16px}.tool-selector select{flex:1;min-width:0;font-size:14px}.tool-selector .icon{color:var(--green)}.hint{background:#192119;border:1px solid var(--line);border-radius:7px;padding:13px 16px;color:var(--muted);font-size:13px;margin-top:18px;display:flex;gap:10px;align-items:flex-start}.hint .icon{color:var(--green);margin-top:1px}.recent-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #2a3328}.recent-row:last-child{border:0}.recent-row span:last-child{margin-left:auto}.activity{font-size:12px;color:var(--muted);margin-top:12px;max-height:100px;overflow:auto}.era-strip{display:flex;gap:0;border-top:1px solid var(--line);margin-top:28px;padding-top:20px;overflow:auto}.era-node{flex:1;min-width:88px;font-size:12px;color:#62715b}.era-node b{display:block;color:#87927f;font-size:13px}.era-node:first-child b{color:var(--green)}.era-node .era-dot{width:6px;height:6px;background:#384532;border-radius:50%;margin-bottom:8px}.era-node:first-child .era-dot{background:var(--green)}.page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.recipe-card .recipe-head{display:flex;gap:13px;align-items:center;margin-bottom:13px}.recipe-head .item-icon{width:42px;height:42px}.recipe-card .ingredients{min-height:65px;margin:12px 0;font-size:13px;color:var(--muted)}.recipe-card .ingredients span{display:inline-block;margin:3px 6px 3px 0;padding:3px 7px;border:1px solid var(--line);border-radius:4px}.recipe-card .recipe-foot{display:flex;align-items:center;gap:8px}.recipe-foot input{width:64px}.recipe-foot button{flex:1}.source-link{font-size:12px;color:#9baf8d;display:inline-block;margin-top:10px}.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px}.toolbar input{flex:1;min-width:140px}.filters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:19px}.filters button{min-height:36px;font-size:13px}.filters button.active{color:var(--green);border-color:#5b7241}.empty{padding:55px 25px;text-align:center;border:1px dashed var(--line);border-radius:12px;background:var(--panel)}.empty .icon{width:38px;height:38px;color:var(--green);margin-bottom:15px}.empty p{color:var(--muted);margin:10px 0 18px}.inventory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.inventory-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 8px;touch-action:pan-y}.inventory-item .item-icon{width:44px;height:44px}.inventory-item strong{font-size:14px}.inventory-item .qty{font-family:'Space Grotesk';color:var(--green)}.inventory-item.dragging{opacity:.45}.dropzone{padding:20px;border:1px dashed #69544c;border-radius:9px;text-align:center;color:var(--red);margin-top:18px;min-height:64px;touch-action:none}.dropzone.over{background:#624338;border-color:var(--red)}.container-row{display:flex;justify-content:space-between;gap:10px;padding:13px 0;border-bottom:1px solid var(--line)}.capacity-cards{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:22px}.capacity-cards .card{padding:15px 20px}.capacity-cards strong{font-size:22px}.machine{margin-bottom:16px}.machine-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.machine-title{display:flex;gap:12px;align-items:center}.machine-title img{width:45px;height:45px}.machine .controls{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.machine .controls select{flex:1;min-width:145px}.machine .controls input{width:80px}.machine .progress{margin-top:15px}.connection-area{position:relative;min-height:180px;border:1px solid var(--line);border-radius:10px;margin-top:16px;padding:18px;background-image:radial-gradient(#44513a 1px,transparent 1px);background-size:17px 17px;display:flex;flex-wrap:wrap;gap:30px;align-items:center}.port-node{background:var(--panel);border:1px solid #5d7148;padding:16px;border-radius:8px;touch-action:none;user-select:none}.port-node button{margin:8px 3px 0;min-height:40px;color:var(--green)}.edge-list{margin-top:17px}.edge{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:11px 14px;border:1px solid var(--line);border-radius:7px;margin-top:7px}.milestone-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:13px}.milestone .tier{font:22px 'Space Grotesk';color:var(--gold);margin-bottom:10px}.milestone.done{border-color:#5b7540}.milestone.done .tier{color:var(--green)}.milestone p{font-size:13px;color:var(--muted);margin:7px 0}.milestone .progress{margin-top:15px}.stargate{display:flex;gap:25px;align-items:center;margin-bottom:22px}.stargate img{width:120px;max-height:150px;object-fit:contain;image-rendering:pixelated}.star-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:15px}.planet .planet-code{font:11px 'Space Grotesk';letter-spacing:3px;color:#6b8462}.planet img{width:48px;height:48px;margin:17px 0;image-rendering:pixelated}.planet p{font-size:13px;color:var(--muted);margin:10px 0}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.settings-row div{max-width:70%}.settings-row p{font-size:13px;color:var(--muted);margin-top:4px}.settings-row button{flex-shrink:0}.notice{border:1px solid #645640;background:#29251d;color:var(--gold);padding:12px 16px;border-radius:7px;font-size:13px;margin-bottom:18px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(20px);max-width:calc(100vw - 32px);background:#d9e8ca;color:#22301b;padding:12px 20px;border-radius:8px;box-shadow:0 8px 24px #0005;opacity:0;transition:.2s;pointer-events:none;z-index:20}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:12px;max-width:480px;width:calc(100% - 32px);padding:25px}dialog::backdrop{background:#0009}dialog p{color:var(--muted);margin:12px 0 20px}dialog .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}dialog input,dialog select{max-width:100%;width:100%;margin:5px 0}.footer{display:flex;justify-content:space-between;color:#5f6d58;font-size:11px;margin-top:20px}.mobile-brand{display:none}.drag-ghost{position:fixed;pointer-events:none;z-index:30;padding:9px 13px;background:var(--green);color:#26331d;border-radius:6px;transform:translate(-50%,-50%)}.reduce-motion *{transition:none!important;animation:none!important}
.drag-handle{position:absolute;right:5px;top:5px;padding:7px;color:#849179;touch-action:none;cursor:grab;font-size:18px;line-height:1}.drag-handle .icon{width:15px;height:15px}.sprite{object-fit:cover;object-position:50% 0;aspect-ratio:1}.research-table{width:100%;border-collapse:collapse;font-size:13px}.research-table td,.research-table th{text-align:left;padding:8px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.research-table-wrap{overflow:auto}
@media(min-width:1500px){.pool-visual{height:170px}.play-columns{grid-template-columns:minmax(0,1fr) 310px}}
@media(max-width:1150px){.layout{grid-template-columns:180px minmax(0,1fr)}.sidebar{padding:25px 12px}.brand{padding:0 5px 25px}.brand strong{font-size:18px}.play-columns{grid-template-columns:minmax(0,1fr) 245px;gap:17px}.workspace{padding:25px}.topbar{padding:0 25px}.pool-top,.pool-body{padding-left:15px;padding-right:15px}.stats{gap:13px}.stats .save-status{display:none}}
@media(max-width:920px){.play-columns{grid-template-columns:1fr}.rail{display:grid;grid-template-columns:1fr 1fr}.rail .recent-card{display:none}.pool-visual{height:135px}.topbar .location{font-size:13px}.stats{font-size:12px}}
@media(max-width:650px){body{font-size:14px}.layout{display:block;padding-bottom:86px}.sidebar{position:fixed;top:auto;bottom:0;height:auto;width:100%;padding:0 4px max(6px,env(safe-area-inset-bottom));border-top:1px solid var(--line);border-right:0;background:#141a15f5;backdrop-filter:blur(16px)}.sidebar .brand,.side-foot,.nav-label{display:none}.nav{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0}.nav button{font-size:11px;min-height:66px;padding:9px 2px;gap:5px;flex-direction:column;position:relative;justify-content:center;border-radius:0}.nav button .icon{width:21px;height:21px}.nav button .lock{width:9px;height:9px;position:absolute;right:9px;top:5px;margin:0}.topbar{height:65px;padding:0 17px}.mobile-brand{display:block;font-size:18px;font-weight:700}.topbar .location{display:none}.stats{gap:12px}.stats .solid-stat{display:none}.workspace{padding:21px 16px 15px}.heading{margin-bottom:19px}.heading h1{font-size:26px}.heading p{font-size:13px}.heading .pill{display:none}.subtabs{gap:2px;margin-bottom:19px;flex-wrap:nowrap;overflow:auto}.subtabs button{white-space:nowrap;flex-shrink:0;padding:7px 10px;font-size:13px}.pool-grid{gap:11px}.pool-top{padding:12px 11px;font-size:13px}.pool-top .pill{padding:2px 6px;font-size:10px}.pool-top .icon{width:16px}.pool-top .pool-name{gap:5px}.pool-visual{height:115px}.pool-visual img{width:53px;height:53px}.pool-visual .amount{top:10px;right:11px;font-size:11px}.pool-visual .resource-code{font-size:8px;left:11px}.pool-body{padding:0 11px 12px}.resource-title strong{font-size:15px}.resource-title span{font-size:10px}.pool-actions{gap:6px;grid-template-columns:1fr 42px}.pool-actions button{padding:7px;font-size:13px;min-height:44px}.pool-actions button.skip{font-size:11px}.progress-meta{font-size:10px;margin-bottom:11px}.pool .probe{font-size:10px}.tool-selector{font-size:13px}.rail{grid-template-columns:1fr;gap:12px}.rail .tool-card{display:none}.rail .card{padding:16px}.play-columns{gap:18px}.goal-box{margin:5px 0}.era-strip{margin-top:20px}.footer{font-size:10px}.page-grid{grid-template-columns:1fr}.inventory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.inventory-item{padding:14px 6px}.inventory-item strong{font-size:12px}.capacity-cards{gap:10px}.capacity-cards .card{padding:11px 13px}.capacity-cards strong{font-size:18px}.capacity-cards .muted{font-size:11px}.milestone-list{grid-template-columns:repeat(2,minmax(0,1fr))}.milestone{padding:16px}.settings-row{align-items:flex-start;gap:10px}.settings-row div{max-width:63%}.settings-row button{padding:8px 10px;font-size:12px}.stargate{gap:15px}.stargate img{width:75px}.stargate h2{font-size:18px}.star-grid{grid-template-columns:1fr}.machine-header{align-items:flex-start}.machine .controls select{width:100%;flex-basis:100%}.notice{font-size:12px}.connection-area{gap:12px}.port-node{padding:12px;flex:1;min-width:120px}.edge{font-size:12px}.card{padding:17px}.toolbar{gap:8px}.toolbar select{max-width:100%}}
/* Touch-safe storage and factory boards. */
.storage-panels{display:grid;gap:18px;margin:16px 0}.storage-panel{min-height:145px;border:1px solid var(--line)}.storage-panel.over{outline:2px solid var(--green);background:#21382e}.storage-panel .inventory-grid{margin-top:15px;grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.item-actions{display:flex;gap:4px;margin-top:8px}.item-actions button{font-size:12px;padding:5px 8px}.drag-handle,.node-handle,[data-port-from]{touch-action:none;user-select:none}.group-choices{display:grid;gap:10px;margin:20px 0}.group-choices label{display:flex;align-items:center;gap:12px}.group-choices input{width:20px;min-height:20px}.queue-list{padding-left:22px;margin:18px 0}.queue-list li{display:flex;align-items:center;gap:8px;margin:10px 0;padding-bottom:10px;border-bottom:1px solid var(--line)}.queue-list li>div{flex:1}.board-scroll{overflow:auto;max-width:100%;margin-top:18px;border:1px solid var(--line);border-radius:12px}.connection-board{position:relative;width:2050px;height:1200px;background-color:#101c18;background-image:radial-gradient(#354c40 1px,transparent 1px);background-size:20px 20px}.connection-board .port-node{position:absolute;width:210px;min-height:145px;background:#1c2b24;border:1px solid #597262;border-radius:12px;padding:14px;z-index:2}.node-handle{cursor:grab;display:flex;gap:7px;align-items:center;margin-bottom:12px}.node-handle .item-icon{width:28px;height:28px}.node-handle strong{font-size:13px}.node-handle span{margin-left:auto;color:#9bb8a5}.port-node button{margin-top:12px}.wire-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:1}.wire-layer path{fill:none;stroke:#7bcaad;stroke-width:4;stroke-linecap:round;filter:drop-shadow(0 0 4px #589d7755)}.wire-layer path.wire{stroke:#dbb66a}.wire-layer #preview-line{stroke:#efffed;stroke-dasharray:7 6;stroke-width:3}.gather-particle{position:fixed;z-index:1000;width:6px;height:6px;pointer-events:none;animation:gather-burst .65s ease-out forwards}@keyframes gather-burst{to{transform:translate(var(--dx),var(--dy)) rotate(160deg);opacity:0}}.recipe-foot input{min-width:0;width:65px}.recipe-foot button{min-width:0}.settings-row input[type=range]{max-width:180px}.board-scroll{max-height:550px}dialog select,dialog input[type=number],dialog input[type=text],dialog input:not([type]){width:100%;margin:10px 0}dialog label{display:block}input[aria-invalid=true]{border-color:var(--red)}@media(max-width:650px){.storage-panel{padding:15px}.storage-panel .inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.queue-list li{flex-wrap:wrap}.board-scroll{max-height:420px}.recipe-foot{flex-wrap:wrap}.settings-row input[type=range]{max-width:120px}}

.storage-targets{position:sticky;top:8px;z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;background:#131e17;border:1px solid var(--line);border-radius:8px;margin-top:15px}.storage-targets div{border:1px dashed #7f9870;padding:8px 12px;border-radius:7px;color:var(--green)}.storage-targets .over{background:#455a34}.storage-panel .inventory-grid{max-height:310px;overflow:auto;padding-right:4px}.storage-panels{grid-template-columns:repeat(2,minmax(0,1fr))}.storage-panels .storage-panel:first-child{grid-row:span 2}@media(max-width:850px){.storage-panels{grid-template-columns:1fr}.storage-panels .storage-panel:first-child{grid-row:auto}}
/* Keep the game theme when an HTML preview mounts it inside another page. */
#app,#dialog,#toast,.drag-ghost{--bg:#101512;--panel:#19201b;--raised:#222a23;--line:#30392f;--text:#e5e9dc;--muted:#939d8f;--green:#b7df87;--gold:#d8b77b;--red:#e89f8b;--font:'Space Grotesk','Noto Sans SC',sans-serif;color-scheme:dark}
#app{background:#101512;color:#e5e9dc;font:15px/1.65 var(--font);min-height:100vh}
#app .layout,#app .workspace,#app .topbar{color:var(--text);background:var(--bg)}
#app .sidebar{color:var(--text);background:#141a15}
#app .nav button{color:var(--muted)}
#app .nav button.active{color:var(--green)}
#app .brand strong,#app h1{color:var(--text)}

.pool-visual .resource-button{background:transparent;border:0;width:105px;height:105px;padding:15px;cursor:crosshair;display:grid;place-items:center}.pool-visual .resource-button:hover{background:transparent}.pool-visual .resource-button img{width:66px;height:66px;transition:transform .16s ease-out}.pool-visual .resource-button:hover img,.pool-visual .resource-button:focus-visible img{transform:scale(1.2)}.pool-visual .resource-button:active img{transform:scale(.92)}.pool-actions{display:flex;align-items:center;justify-content:space-between}.connection-board .port-node{width:250px;min-height:250px}.node-ports{display:flex;flex-wrap:wrap;gap:4px}.node-ports .port{font-size:12px;padding:5px 8px;margin:5px 0;min-height:36px}.node-ports .port.in{border-color:#829ba6}.node-ports .port.out{border-color:#89a365}.node-ports .port.wire{border-style:dashed}.node-status{margin:6px 0}.node-recipe{font-size:12px;color:var(--text);margin:7px 0;min-height:36px;overflow-wrap:anywhere}.wire-layer path.pipe{stroke-width:7;stroke-linecap:square;stroke-linejoin:miter}.wire-layer path.wire{stroke-width:2}.port-node .progress{margin-top:10px}.network-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:15px 0}.network-stat{border-top:3px solid;padding:12px}.network-stat h3{font-size:14px}.network-stat h3 i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px}.network-stat .mono{font-size:20px}.board-scroll{max-height:720px}.connection-board{height:800px}@media(max-width:650px){.board-scroll{max-height:530px}.network-stats{grid-template-columns:1fr}.connection-board .port-node{width:250px}}

.node-ports{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.node-ports .port{position:relative;display:flex;align-items:center;gap:6px;overflow:visible;padding:5px 15px}.port.out{grid-column:2}.port.in{grid-column:1}.port-symbol{position:absolute;width:12px;height:12px;border:2px solid var(--port-color);border-radius:50%;background:var(--panel);pointer-events:none}.port.in .port-symbol{left:1px}.port.out .port-symbol{right:1px}.port.connected .port-symbol{background:var(--port-color)}.port.wire .port-symbol{clip-path:polygon(0 0,100% 50%,0 100%);border-radius:0;border:0;background:var(--port-color)}.port.wire:not(.connected) .port-symbol:after{content:'';position:absolute;inset:2px;background:var(--panel);clip-path:polygon(0 0,100% 50%,0 100%)}.port.connected:after{content:'';position:absolute;height:2px;background:var(--port-color);width:32px;top:50%;pointer-events:none}.port.connected.out:after{left:calc(100% - 7px)}.port.connected.in:after{right:calc(100% - 7px)}.port.pipe.connected:after{height:7px;margin-top:-3px}.fluid-meter{font-size:11px;margin:8px 0}.fluid-meter span{float:right;color:var(--muted)}.fluid-meter .progress{margin-top:4px;height:9px}.connection-board .port-node{min-height:280px}
/* v0.4: stock indicators, movable grid, environmental effects. */
.stock-meter{position:relative;min-height:34px;margin:8px 0;background:#0e1715;border:1px solid #547165;border-radius:0;overflow:hidden;font-size:12px;line-height:32px;isolation:isolate}.stock-meter i{display:block;position:absolute;inset:0 auto 0 0;opacity:.48;z-index:-1}.stock-meter span{display:block;padding:0 8px;white-space:nowrap;color:#f1f5ed;text-shadow:0 1px 2px #111}.blueprint{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:18px 0}.blueprint div{min-height:55px;border:1px solid var(--line);display:grid;place-items:center;font-size:11px}.blueprint .filled{background:#304335;color:var(--green)}.environment-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);margin:0 0 20px;background:#1a2721}.sky-controls{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}.sky-controls button{min-height:32px;padding:3px 8px;font-size:11px}.garden-entry{margin-bottom:22px}.deployable{display:flex;flex-direction:column;gap:8px}.deployable .item-icon{align-self:center}.deployable .item-actions{flex-wrap:wrap}.connection-board{background-size:20px 20px;touch-action:none;cursor:grab}.connection-board.dragging{cursor:grabbing}.connection-board .port-node{width:300px;height:480px;min-height:480px;padding:20px;overflow:visible;cursor:default;display:flex;flex-direction:column;gap:0;border-radius:4px}.port-node .node-handle{height:40px;min-height:40px;overflow:hidden;margin:0 0 6px}.port-node .node-recipe{height:40px;min-height:40px;font-size:11px;margin:4px 0}.node-ports{margin-top:auto;grid-auto-rows:40px;gap:0 12px}.node-ports .port{height:40px;min-height:40px;margin:0;padding:4px 14px;border-radius:0;font-size:11px}.port-node .stock-meter{min-height:30px;height:30px;line-height:28px;margin:4px 0;flex-shrink:0}.port-node select{min-height:30px;height:30px;padding:2px 8px;margin:4px 0;font-size:11px}.port-node .progress{margin:5px 0;height:5px}.port-node>button{min-height:32px;margin:4px 0;padding:4px;font-size:11px}.port-node.collision{outline:3px solid var(--red)}.node-ports .port.item .port-symbol{border-radius:0}.port.item.connected:after{height:7px;margin-top:-3px}.wire-layer path.pipe{stroke-linecap:round;stroke-linejoin:round}.wire-layer path.item{stroke-width:7;stroke-linecap:square;stroke-linejoin:miter}.wire-layer marker path{stroke:none;filter:none}.edge select{max-width:180px;min-height:32px;font-size:11px}.board-scroll{max-height:740px}.weather-layer,#weather-layer{position:fixed;inset:0;pointer-events:none;z-index:3;overflow:hidden}#weather-layer .rain-drop{display:none;position:absolute;top:-15%;height:35px;width:1px;background:#9fc5dc88;animation:rainfall 1.5s linear infinite}body[data-weather=rain] .rain-drop,body[data-weather=thunder] .rain-drop{display:block}.sun-glow{position:absolute;width:500px;height:500px;right:-220px;top:-240px;border-radius:50%;background:radial-gradient(#ead28012,transparent 70%);display:none}body[data-weather=clear][data-day=day] .sun-glow{display:block}.night-shade{position:absolute;inset:0;display:none;box-shadow:inset 0 0 150px #273b6266;background:#132a4808}body[data-day=night] .night-shade{display:block}.lightning-flash{display:none;position:absolute;inset:0;background:#d5eaff;opacity:0;animation:lightning 12s infinite}body[data-weather=thunder] .lightning-flash{display:block}@keyframes rainfall{to{transform:translate(-90px,110vh)}}@keyframes lightning{0%,94%,98%,100%{opacity:0}95%,97%{opacity:.08}}.reduce-motion #weather-layer .rain-drop{animation:none;top:20%;opacity:.15}.reduce-motion .lightning-flash{display:none}@media(prefers-reduced-motion:reduce){.lightning-flash{display:none!important}.rain-drop{animation:none!important}}@media(max-width:650px){.environment-bar{font-size:12px;gap:6px}.sky-controls{margin-left:0}.board-scroll{max-height:570px}.connection-board .port-node{width:300px;padding:20px}.stock-meter{font-size:11px}.edge{flex-wrap:wrap}.edge span{flex-basis:100%}}

.connection-board .port-node{height:520px;min-height:520px}.port .port-symbol{top:calc(50% + var(--stub-offset,0px));transform:translateY(-50%)}.port.connected:after{top:calc(50% + var(--stub-offset,0px))}.port.item.connected:after,.port.pipe.connected:after{margin-top:-3px}
/* v0.4.1: compact cards, unrestricted camera, weather and world star chart. */
.side-clock{padding:12px;margin:12px 0;border:1px solid #354638;background:#1b261e;border-radius:6px}.side-clock>div{display:flex;align-items:center;gap:12px;margin:8px 0}.side-clock small{color:var(--muted)}.clock-digits{font-size:26px;font-variant-numeric:tabular-nums}.clock-face{width:44px;height:44px;border:2px solid #779f78;border-radius:50%;position:relative;background:radial-gradient(#8cb482 2px,transparent 3px),#122017}.clock-face:after{content:'';width:4px;height:4px;position:absolute;top:2px;left:18px;background:#aacaa2;box-shadow:0 32px #aacaa2,16px 16px #aacaa2,-16px 16px #aacaa2}.clock-face i,.clock-face b{position:absolute;left:19px;bottom:20px;width:2px;background:#def1c9;transform-origin:50% 100%;height:11px;transform:rotate(var(--hour))}.clock-face b{height:16px;background:#7ddbb1;transform:rotate(var(--minute))}
.connection-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.connection-heading button{margin-left:auto}.connections-panel.expanded{position:fixed;inset:12px;z-index:80;overflow:auto;margin:0;padding:16px;background:#131d17;display:flex;flex-direction:column}.connections-panel.expanded .board-scroll{flex:1;min-height:260px;max-height:none}.connections-panel.expanded>.small,.connections-panel.expanded .network-stats,.connections-panel.expanded .edge-list{display:none}.board-expanded{overflow:hidden}.board-scroll{height:620px;max-height:70vh;position:relative;overflow:hidden;background-color:#101813;background-image:linear-gradient(#35483c66 1px,transparent 1px),linear-gradient(90deg,#35483c66 1px,transparent 1px);background-size:20px 20px;touch-action:none;border:1px solid #45694e}.connection-board{transform-origin:0 0;background:none!important;position:absolute;top:0;left:0;overflow:visible;will-change:transform}.connection-board .port-node{width:240px;height:auto;min-height:0;padding:12px;gap:0;border-radius:3px}.port-node .node-handle{height:auto;min-height:30px;margin:0 0 4px;gap:6px}.node-handle .item-icon{width:25px;height:25px}.node-handle strong{font-size:12px;cursor:pointer}.node-handle>span{margin-left:auto}.node-status{margin:2px 0}.node-status .pill{font-size:10px;padding:1px 6px}.port-node .node-recipe{height:auto;min-height:0;margin:4px 0;line-height:1.3}.node-ports{margin-top:4px;grid-auto-rows:32px;gap:0 8px}.node-ports .port{height:32px;min-height:32px;padding:3px 13px;font-size:10px}.port-node .stock-meter{height:24px;min-height:24px;line-height:22px;margin:3px 0;font-size:10px}.port-node>button{min-height:26px;height:26px;padding:2px 6px;margin:3px 0}.port-node select{height:26px;min-height:26px}.recipe-sprites{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-height:34px}.recipe-sprites span{position:relative;display:inline-flex;align-items:center}.recipe-sprites .item-icon{width:26px;height:26px}.recipe-sprites small{font-size:9px;align-self:flex-end}.recipe-picker{display:flex;flex-direction:column;gap:8px;max-height:55vh;overflow:auto}.recipe-picker label{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px;border:1px solid var(--line);cursor:pointer}.recipe-picker label:has(input:checked){background:#2a402d;border-color:#8cbb7c}.recipe-picker span{display:flex;align-items:center;font-size:12px}.recipe-picker .item-icon{width:26px;height:26px}.ingredients .item-icon{width:24px;height:24px;vertical-align:middle;margin-right:4px}.entity-focus{outline:3px solid #d0ec8e;animation:focus-entity .75s ease-in-out 6;scroll-margin:24px}@keyframes focus-entity{50%{box-shadow:0 0 25px #b7df8799;outline-color:#eac878}}
#weather-layer .rain-drop{height:48px;width:2px;background:linear-gradient(transparent,#b2d9ed);opacity:var(--opacity,.5);transform:rotate(13deg);animation-name:rainfall-vivid;filter:drop-shadow(0 0 2px #73b1ce55)}@keyframes rainfall-vivid{from{transform:translate3d(0,-5vh,0) rotate(13deg)}to{transform:translate3d(var(--drift,-100px),125vh,0) rotate(13deg)}}.rain-splash{display:none;position:absolute;width:14px;height:5px;border:1px solid #accfe76b;border-radius:50%;animation:splash 1.6s ease-out infinite;opacity:0}body[data-weather=rain] .rain-splash,body[data-weather=thunder] .rain-splash{display:block}@keyframes splash{35%{transform:scale(.1);opacity:0}40%{opacity:.55}80%{transform:scale(2.5);opacity:0}100%{opacity:0}}.weather-clouds{display:none;position:absolute;inset:-20%;background:radial-gradient(ellipse at 25% 0,#8caabd25,transparent 50%),radial-gradient(ellipse at 75% 15%,#b9d5e620,transparent 35%);animation:cloud-drift 22s ease-in-out infinite alternate}body[data-weather=rain] .weather-clouds,body[data-weather=thunder] .weather-clouds{display:block}@keyframes cloud-drift{to{transform:translateX(8%)}}body[data-weather=thunder] #weather-layer .rain-drop{height:68px;background:linear-gradient(transparent,#b9d2eb)}body[data-weather-effects=off] #weather-layer{display:none}.reduce-motion .weather-clouds,.reduce-motion .rain-splash{animation:none!important}.reduce-motion .rain-drop{animation:none!important}.reduce-motion .entity-focus{animation:none}.cosmos-map{position:relative;isolation:isolate;overflow:hidden;border:1px solid #38546b;background:radial-gradient(ellipse at 20% 10%,#27466866,transparent 45%),radial-gradient(ellipse at 85% 80%,#55386755,transparent 50%),#070f1c;padding:25px;border-radius:8px}.cosmos-stars{position:absolute;inset:0;z-index:-1;background-image:radial-gradient(#e4f0ff 1px,transparent 1.5px),radial-gradient(#94bff3 1px,transparent 1.5px),radial-gradient(#ffffff99 1px,transparent 2px);background-size:97px 121px,151px 137px,211px 183px;background-position:12px 24px,62px 81px,29px 53px;animation:star-shimmer 5s ease-in-out infinite alternate}@keyframes star-shimmer{to{opacity:.4;transform:translateY(5px)}}.cosmos-sun{position:absolute;top:-110px;left:-90px;width:250px;height:250px;border-radius:50%;background:radial-gradient(#ffedb9,#da914c 35%,#ba713522 50%,transparent 68%);z-index:-1;animation:sun-breathe 7s ease-in-out infinite alternate}@keyframes sun-breathe{to{transform:scale(1.15)}}.orbit{position:absolute;left:0;top:0;border:1px dashed #6686a440;border-radius:50%;z-index:-1;pointer-events:none;transform:rotate(-25deg)}.orbit-one{width:750px;height:450px}.orbit-two{width:1150px;height:720px}.cosmos-map .planet{background:#122034cc;border-color:#40556e;backdrop-filter:blur(3px)}.cosmos-map .planet>div{position:relative}.cosmos-map .planet>div:after{content:'';position:absolute;width:100px;height:100px;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid #88bbd744;border-radius:50%;box-shadow:0 0 30px #6d9fff22}.cosmos-map .planet .item-icon{position:relative;z-index:1;animation:planet-float 6s ease-in-out infinite}.cosmos-map .planet:nth-child(even) .item-icon{animation-delay:-3s}@keyframes planet-float{50%{transform:translateY(-8px) rotate(4deg)}}.reduce-motion .cosmos-map *{animation:none!important}@media(prefers-reduced-motion:reduce){.weather-clouds,.rain-splash,.cosmos-map *,.entity-focus{animation:none!important}}@media(max-width:650px){.board-scroll{height:500px;max-height:65vh}.connections-panel.expanded{inset:0;padding:10px}.connection-board .port-node{width:240px;padding:12px;min-height:0}.cosmos-map{padding:12px}.side-clock{display:none}}
.wind-control{display:flex;gap:5px;align-items:center;font-size:11px}.wind-control input{width:100px;min-height:24px}.side-clock small{display:block;line-height:1.5}
#weather-layer .rain-drop{width:var(--rain-width,4px);height:var(--rain-length,68px);border-radius:0;filter:none!important;background:linear-gradient(to bottom,#5f9af1 0 12%,#326ce0 12% 30%,#5796f0 30% 50%,#2d65cb 50% 72%,#75afff 72% 82%,#367ce8 82% 100%)!important;opacity:var(--opacity,.7);animation-name:pixel-rain;animation-timing-function:linear;box-shadow:2px 0 #3470cf66;image-rendering:pixelated;transform-origin:center center}@keyframes pixel-rain{from{transform:translate3d(0,-8vh,0) rotate(var(--rain-angle,0deg))}to{transform:translate3d(var(--rain-drift,0vh),125vh,0) rotate(var(--rain-angle,0deg))}}body[data-weather=thunder] #weather-layer .rain-drop{width:calc(var(--rain-width,4px) + 1px);height:calc(var(--rain-length,68px) + 18px);box-shadow:2px 0 #6fa8ff88}.reduce-motion #weather-layer .rain-drop{animation:none!important;transform:none;opacity:.12}body[data-weather-effects=off] #weather-layer{display:none}
.tool-sprite{position:relative;display:inline-block;flex-shrink:0;width:32px;height:32px;vertical-align:middle}.tool-sprite img{position:absolute;inset:0;width:100%!important;height:100%!important;image-rendering:pixelated;object-fit:contain;pointer-events:none}.tool-base.wrench{filter:sepia(1) saturate(2) hue-rotate(350deg)}.tool-base.cutter{filter:brightness(.9)}.recipe-sprites .tool-sprite,.recipe-picker .tool-sprite{width:26px;height:26px}.ingredients .tool-sprite{width:24px;height:24px}#edge-tool-cursor{position:fixed;z-index:1500;pointer-events:none;width:36px;height:36px;filter:drop-shadow(0 1px 2px #000)}#edge-tool-cursor .cursor-tool{width:36px;height:36px}
.wire-layer .edge-hit{fill:none!important;stroke:transparent!important;stroke-width:18px!important;pointer-events:stroke;cursor:none;filter:none!important;vector-effect:non-scaling-stroke}.wire-layer .edge-visible{pointer-events:none}.edge-group.hovered .edge-visible,.edge-group:hover .edge-visible,.edge-group:focus-within .edge-visible{filter:brightness(1.7) drop-shadow(0 0 5px #dcf7ff)!important;stroke-width:9px}.edge-group.hovered .edge-visible.wire,.edge-group:hover .edge-visible.wire{stroke-width:4px}.port.connected:after{display:none!important}.node-ports .port{justify-content:center;text-align:center;line-height:1.2;white-space:normal;position:relative}.port .port-symbol{top:50%!important;transform:translateY(-50%);margin:0}.port-node .node-handle{overflow:visible}.port-node .node-handle strong{line-height:1.35}.port-node .node-status{line-height:1.3}.port-node .node-recipe{line-height:1.4}.node-ports .port.out,.node-ports .port.in{align-items:center}
.galaxy-shell{border:1px solid #49677a;background:#080f19;border-radius:4px;overflow:hidden}.galaxy-title{padding:12px 16px;background:#172635;border-bottom:1px solid #456273;font-size:20px;color:#d7ebf8}.galaxy-title span{float:right;font-size:11px;letter-spacing:2px;margin-top:8px;color:#91acc2}.galaxy-viewport{overflow:auto;overscroll-behavior:contain;max-height:72vh}.galaxy-map{display:block;width:100%;min-width:880px;height:auto;min-height:500px}.galaxy-map .celestial{cursor:pointer;outline:none}.galaxy-map .celestial image{image-rendering:pixelated;pointer-events:none}.galaxy-map .celestial text{font-size:14px;fill:#bad1e4;paint-order:stroke;stroke:#050a13;stroke-width:4px;pointer-events:none}.galaxy-map .planet-selection{opacity:0}.galaxy-map .celestial:hover .planet-selection,.galaxy-map .celestial:focus .planet-selection,.galaxy-map .celestial.selected .planet-selection{opacity:1}.galaxy-map .celestial:hover text,.galaxy-map .celestial.selected text{fill:#fff}.galaxy-legend{display:flex;flex-wrap:wrap;gap:6px;padding:12px;border-top:1px solid #314759}.galaxy-legend button{font-size:12px;padding:5px 10px;background:#142331;border-color:#385875}.galaxy-legend button.active{border-color:#8acafb;color:#c7eaff}.selected-planet-image{display:grid;place-items:center;background:radial-gradient(#20334a,#09111d);padding:25px;margin:15px 0}.selected-planet-image img{width:110px;height:110px;object-fit:contain;image-rendering:pixelated}.planet-resources{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.planet-resources span{display:inline-flex;align-items:center;gap:5px;font-size:12px}.planet-resources .item-icon{width:26px;height:26px}@media(max-width:650px){.galaxy-title span{float:none;display:block}.galaxy-map{min-width:880px}.galaxy-viewport{max-height:480px}.galaxy-legend button{min-height:38px}}

/* Precipitation display rules must override the layer's hidden defaults. */
body[data-weather="rain"] #weather-layer .rain-drop,body[data-weather="thunder"] #weather-layer .rain-drop{display:block;opacity:var(--opacity,.8)}
#weather-layer .snow-flake{display:none;position:absolute;top:-8%;width:6px;height:6px;background:#f2f8ff;box-shadow:3px 0 #fff,0 3px #dceaff;animation:snow-fall 7s linear infinite;opacity:.85}
body[data-weather="snow"] #weather-layer .snow-flake{display:block}
@keyframes snow-fall{from{transform:translate(0,-10vh)}to{transform:translate(var(--rain-drift,20vh),120vh)}}
body.reduce-motion #weather-layer .snow-flake{animation:none;top:var(--snow-y)}
@media(prefers-reduced-motion:reduce){#weather-layer .snow-flake{animation:none;top:var(--snow-y)}}
.calendar-display{display:block;margin:6px 0;color:var(--text)}.sky-controls input[type=number]{width:72px;padding:6px}.recipe-options label{display:flex;align-items:center;gap:8px}.recipe-options input{width:auto}
.board-scroll{position:relative;isolation:isolate}.grid-controls{position:absolute;right:12px;top:12px;z-index:15}.grid-controls button{box-shadow:0 2px 10px #0008;background:var(--panel,#202921)}
#edge-parameters{position:fixed;z-index:1000;pointer-events:none;max-width:300px;padding:10px 12px;background:#18241ef2;color:#edf7e9;border:1px solid #829a76;font-size:12px;line-height:1.7}

body.reduce-motion #weather-layer .rain-drop{top:var(--rain-y,20vh)}
@media(prefers-reduced-motion:reduce){#weather-layer .rain-drop{top:var(--rain-y,20vh);transform:none}}
.command-console{margin-top:18px}.command-console form{display:flex;gap:8px;margin:14px 0}.command-console input{min-width:0;flex:1}.command-console pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:280px;overflow:auto;color:#bfd5b3;font-size:13px}
.node-status{display:flex;justify-content:space-between;align-items:center;gap:6px}.node-status button{min-height:28px;padding:3px 7px;font-size:12px}
.node-ports .port{padding:0;min-height:34px;border:0;display:flex;position:relative}.node-ports .port-label{width:100%;min-height:32px;font-size:11px;padding:5px 6px}.port-symbol{cursor:crosshair;touch-action:none;z-index:5;outline-offset:5px}.port-symbol:before{content:'';position:absolute;inset:-10px}.port-symbol:focus-visible{outline:2px solid #b7df87}
.buffer-label{font-size:10px;color:var(--muted);margin-top:5px}.buffer-squares{display:flex;flex-wrap:wrap;gap:3px;margin:4px 0}.buffer-square{position:relative;width:34px;height:34px;background:#0c120f;border:2px solid #57624f;box-shadow:inset 2px 2px #0007}.buffer-square .item-icon{width:26px;height:26px;margin:2px}.buffer-square b{position:absolute;right:1px;bottom:-3px;font-size:10px;text-shadow:1px 1px #000;color:#fff}.config-measure{position:fixed!important;left:-20000px!important;top:0!important;transform:none!important;visibility:hidden;pointer-events:none}
#item-tooltip{position:fixed;z-index:1001;pointer-events:none;background:#17221cf5;border:1px solid #819675;padding:7px 10px;color:#edf7e9;max-width:210px;font-size:12px}
#weather-layer .snow-flake{width:14px;height:18px;background-color:transparent;box-shadow:none;background-repeat:repeat;image-rendering:pixelated;opacity:1}
#weather-layer .rain-splash{width:3px;height:3px;border:0;border-radius:0;background:#7fc4ff;box-shadow:-5px -2px #65b5f8,5px -3px #8cc9ff;animation-name:pixel-splash}
@keyframes pixel-splash{0%,62%{opacity:0;transform:translateY(0) scale(.5)}65%{opacity:.85;transform:translateY(0) scale(.5)}80%{opacity:.6;transform:translateY(-9px) scale(1)}96%,100%{opacity:0;transform:translateY(3px) scale(1.5)}}
.galaxy-viewport{height:490px!important;min-height:0!important;position:relative;overflow:hidden!important;touch-action:none;cursor:grab}.galaxy-viewport:active{cursor:grabbing}.galaxy-map{position:absolute!important;top:0;left:0;width:1100px!important;min-width:0!important;height:690px!important;max-width:none!important;transform-origin:0 0;user-select:none}.galaxy-map .celestial{cursor:pointer}.galaxy-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.galaxy-title button{padding:3px 9px;min-height:32px;font-size:12px}.galaxy-title #star-zoom{font-size:12px}
@media(max-width:650px){.galaxy-viewport{height:440px!important}.galaxy-title{flex-wrap:wrap}.node-ports .port-label{min-height:36px}}

.port-symbol{pointer-events:auto}.galaxy-map text{pointer-events:none}
.node-ports{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-rows:auto;gap:8px;align-items:start;flex-shrink:0}
.port-column{display:flex;flex-direction:column;gap:4px;min-width:0}.port-column.in{grid-column:1}.port-column.out{grid-column:2}
.node-ports .port{height:auto;min-height:34px;margin:0;padding:0;flex-shrink:0}.node-ports .port-label{margin:0;min-height:34px;height:auto;line-height:1.35;padding:5px 4px;overflow-wrap:anywhere}
.connection-board .port-node{height:auto;min-height:0;display:flex;flex-direction:column}.port-node .node-recipe{height:auto;min-height:0;flex-shrink:0}.port-node .node-recipe>.stock-meter{height:32px;min-height:32px;line-height:30px;margin-top:8px;font-size:11px}
.port-node>button,.pour-actions button{height:auto;min-height:30px;margin:4px 0;line-height:1.4;padding:5px 6px;font-size:11px;white-space:normal}.pour-actions{display:flex;flex-direction:column;flex-shrink:0}.port-node>*{flex-shrink:0}
.storage-panels{grid-template-columns:1fr!important}.storage-panels .storage-panel:first-child{grid-row:auto!important}.workspace:has(#inventory-search) .page-grid{grid-template-columns:1fr}
.galaxy-viewport{background-color:#050a13;background-image:radial-gradient(circle,#d4e5f699 1px,transparent 1.3px),radial-gradient(circle,#91abc666 1px,transparent 1.5px),radial-gradient(circle,#fff9 1.3px,transparent 1.6px);background-size:137px 173px,211px 227px,307px 293px;background-position:var(--star-bg-x,0px) var(--star-bg-y,0px),calc(var(--star-bg-x,0px)*.5 + 63px) calc(var(--star-bg-y,0px)*.5 + 27px),calc(var(--star-bg-x,0px)*.3 + 117px) calc(var(--star-bg-y,0px)*.3 + 81px)}

.galaxy-map{overflow:visible!important}.galaxy-map .satellite text{opacity:0}.galaxy-map .satellite:hover text,.galaxy-map .satellite.selected text,.galaxy-map .satellite:focus text{opacity:1}
.gather-presets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 0 18px}.gather-slot{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:8px 3px}.gather-slot.empty{border-style:dashed;color:var(--muted)}.gather-slot .item-icon,.tool-placeholder{width:36px;height:36px}.tool-placeholder{fill:none;stroke:currentColor;stroke-width:1.5;stroke-dasharray:3 2;opacity:.6}.gather-slot small{font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gather-slot strong{font-size:12px}
.resource-button{cursor:pointer!important}.resource-button[data-gather-tool]:not([data-gather-tool=hand]){cursor:none!important}#gather-tool-cursor{position:fixed;z-index:1550;pointer-events:none;width:36px;height:36px;filter:drop-shadow(0 2px 2px #000)}#gather-tool-cursor img{width:36px;height:36px;image-rendering:pixelated}
.item-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px;max-height:42vh;overflow:auto;padding:5px;margin:10px 0}.item-choice{padding:5px;min-width:0;min-height:48px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;border:2px solid var(--line)}.item-choice .item-icon{width:32px;height:32px;margin:0}.item-choice small{font-size:10px;line-height:1.25;overflow-wrap:anywhere}.item-choice.selected,.recipe-choice.selected,.filter-modes .selected{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:#2d3d26}.filter-modes{display:flex;gap:8px;margin:12px 0}.selected-items{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px;max-height:100px;overflow:auto}.selected-item{padding:4px;min-height:36px}.selected-item .item-icon{width:26px;height:26px;margin:0}.recipe-choice{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:2px solid var(--line);padding:10px;text-align:left}.recipe-choice>span{display:flex;align-items:center;gap:2px}.recipe-choice .item-icon{width:28px;height:28px;margin:0}.recipe-choice strong{font-size:12px}.recipe-choice small{font-size:10px}#filter-search,#card-recipe-search,#tool-mount-search{width:100%;margin:10px 0}
.port-node .node-recipe{position:relative;min-height:30px;padding:4px;isolation:isolate}.port-node .node-recipe>:not(.recipe-progress-background){position:relative;z-index:1}.port-node .node-recipe>.recipe-progress-background{position:absolute!important;inset:0;z-index:0;width:auto;height:auto!important;min-height:0!important;margin:0!important;border:0!important;background:transparent!important;opacity:.3;pointer-events:none}.recipe-progress-background i{border-radius:0}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.storage-targets #trash{margin:0;min-height:0;padding:8px 14px;border:1px dashed var(--red);color:var(--red);font-size:13px;flex-shrink:0}#quick-command-form{display:flex;gap:8px;margin:16px 0}#quick-command-input{min-width:0;flex:1}#quick-command-result{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--green)}
#weather-layer .snow-flake{width:24px;height:32px;filter:drop-shadow(1px 1px #dceaff55)}
@media(max-width:650px){.gather-presets{gap:4px}.gather-slot .item-icon,.tool-placeholder{width:29px;height:29px}.gather-slot{min-height:85px}.item-picker-grid{grid-template-columns:repeat(auto-fill,minmax(43px,1fr))}}

.battery-row{display:flex;align-items:center;gap:8px;margin:8px 0}.battery-row span{flex:1}.battery-row button{padding:8px}.battery-row .item-icon{width:28px;height:28px}

.electric-spec{color:var(--accent);font-size:13px;font-weight:600}
.transport-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.transport-choice{border:1px solid var(--border,#cad2c6);padding:12px;min-width:0;display:grid;gap:8px}.transport-choice>div{display:flex;align-items:center;gap:8px}.transport-choice img{width:32px;height:32px;flex-shrink:0}.transport-choice select{width:100%;min-width:0}.transport-choice small{font-size:11px}.image-recipe{display:flex;align-items:center;gap:12px;width:100%;padding:12px 0}.recipe-inputs,.recipe-outputs{display:flex;gap:8px;flex-wrap:wrap;min-width:0}.recipe-inputs{flex:1}.recipe-pixel{position:relative;display:inline-flex;align-items:center;justify-content:center;width:58px;min-height:62px;background:#f4f6f1;border:1px solid #ced6c7;padding:3px 3px 17px}.recipe-pixel.available{border-color:#80a66d;background:#edf4e5}.recipe-pixel img{width:34px;height:34px;image-rendering:pixelated}.recipe-pixel b{position:absolute;bottom:2px;right:3px;font-size:12px}.recipe-pixel small{font-size:9px;margin-left:2px}.recipe-pixel em{position:absolute;top:0;left:2px;font-size:10px;color:#687a5d}.recipe-pixel i{position:absolute;top:0;left:2px;font-size:9px;color:#687a5d;font-style:normal}.recipe-arrow{font-size:22px;color:#809373}.ingredients:has(.image-recipe){display:block}.star-scene ellipse{vector-effect:non-scaling-stroke}@media(max-width:760px){.transport-choices{grid-template-columns:1fr}.image-recipe{gap:6px}.recipe-pixel{width:46px;min-height:56px}.recipe-pixel img{width:30px;height:30px}.recipe-outputs{max-width:42%}}

/* Manufacturing slots use the game's dark panel palette. */
.recipe-card .ingredients .recipe-pixel{display:inline-flex;margin:0;padding:3px 3px 17px;background:#202b23;color:#e4edde;border:1px solid #526a53;border-radius:3px;box-shadow:inset 0 0 0 1px #142118}
.recipe-card .ingredients .recipe-pixel.available{background:#293b2c;border-color:#88b174}
.recipe-card .ingredients .recipe-pixel b{color:#ecf6e9}.recipe-card .ingredients .recipe-pixel em,.recipe-card .ingredients .recipe-pixel i{color:#b5c8a9}
.connections-panel>.bottom-materials{margin:16px 0 0;padding-top:16px;border-top:1px solid var(--line)}
.network-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-card{min-width:0;padding:14px}.chart-card h3{display:flex;justify-content:space-between;gap:8px;align-items:center}.chart-card h3 small{font-size:12px;color:var(--muted);font-weight:400}.history-chart{display:block;width:100%;height:135px;margin-top:5px}.history-chart text{fill:#9cb3a2;font-size:11px}.history-chart .chart-grid{stroke:#3a5041;stroke-width:1;fill:none;stroke-dasharray:3 4}.chart-legend{display:flex;gap:4px 12px;flex-wrap:wrap;font-size:11px;color:#b9cabc}.chart-legend span{display:flex;align-items:center;gap:5px}.chart-legend i{width:8px;height:8px;border-radius:50%}
.board-scroll.bounded-board{background:#0b110e!important;background-image:none!important}.bounded-board .connection-board::before{content:"";position:absolute;left:var(--bound-left);top:var(--bound-top);width:var(--bound-width);height:var(--bound-height);border:2px solid #66815c;background-color:#101813;background-image:linear-gradient(#35483c66 1px,transparent 1px),linear-gradient(90deg,#35483c66 1px,transparent 1px);background-size:20px 20px;z-index:-1;pointer-events:none}.board-grow{position:absolute;z-index:8;min-height:28px;padding:2px 8px;background:#263929ed;color:#d1e9bf;border:1px solid #8dab71;white-space:nowrap;font-size:11px}.board-grow.grow-top{left:50%;top:var(--bound-top);transform:translate(-50%,-50%)}.board-grow.grow-bottom{left:50%;top:calc(var(--bound-top) + var(--bound-height));transform:translate(-50%,-50%)}.board-grow.grow-left{left:var(--bound-left);top:calc(var(--bound-top) + var(--bound-height)/2);transform:translate(-50%,-50%)}.board-grow.grow-right{left:calc(var(--bound-left) + var(--bound-width));top:calc(var(--bound-top) + var(--bound-height)/2);transform:translate(-50%,-50%)}
.board-minimap{position:absolute;top:10px;left:10px;width:152px;height:111px;padding:5px;background:#132018ef;border:1px solid #71916f;border-radius:5px;box-shadow:0 2px 8px #0009;z-index:16;cursor:crosshair;touch-action:none}.board-minimap svg{display:block;width:100%;height:79px}.board-minimap span{display:block;text-align:center;font-size:10px;color:#bfd5bc}.mini-area{fill:#19291e;stroke:#6a9169;stroke-width:10}.mini-edge{stroke-width:18;opacity:.8;pointer-events:none}.mini-node{fill:#a4d688;stroke:#274233;stroke-width:5}.mini-view{fill:#86b7d02c;stroke:#a6e8fa;stroke-width:12;pointer-events:none}
@media(max-width:760px){.network-stats{grid-template-columns:1fr}.board-minimap{width:122px;height:95px}.board-minimap svg{height:63px}.chart-card h3{font-size:14px}}

/* Card geometry stays fixed at every zoom level so ports and links remain aligned. */
.connection-board .port-node[data-multiblock="true"]{width:300px;padding:18px}
.connection-board .port-node[data-run-state="running"]{border-color:#8ed27c;box-shadow:0 0 0 1px #8ed27c55,0 0 14px #8ed27c22}
.connection-board .port-node[data-run-state="warning"]{border-color:#e9ac5c;box-shadow:0 0 0 1px #e9ac5c88,0 0 15px #e9ac5c33}
.connection-board .port-node[data-run-state="paused"]{border-color:#798da6}
.node-warning{display:none;margin-left:auto!important;color:#ffc276;font-size:21px;line-height:1;animation:node-warning-blink 1s steps(2,end) infinite}
.port-node[data-run-state="warning"] .node-warning{display:inline-block}
@keyframes node-warning-blink{50%{opacity:.18}}
.connection-board[data-detail="compact"] .port-node>*:not(.node-handle):not(.node-recipe){visibility:hidden}
.connection-board[data-detail="compact"] .node-handle strong,.connection-board[data-detail="compact"] .node-handle>span:not(.node-warning){visibility:hidden}
.connection-board[data-detail="icon"] .port-node{background:transparent;border-color:transparent;box-shadow:none;padding:12px}
.connection-board[data-detail="icon"] .port-node>*:not(.node-handle){visibility:hidden}
.connection-board[data-detail="icon"] .node-handle strong,.connection-board[data-detail="icon"] .node-handle>span:not(.node-warning){visibility:hidden}
.connection-board[data-detail="icon"] .node-handle .item-icon{width:64px;height:64px;max-width:none;outline:4px solid #647865;border-radius:5px;background:#18241c;padding:5px}
.connection-board[data-detail="icon"] .port-node[data-run-state="running"] .item-icon{outline-color:#8ed27c}
.connection-board[data-detail="icon"] .port-node[data-run-state="warning"] .item-icon{outline-color:#e9ac5c}
.connection-board[data-detail="icon"] .port-node[data-run-state="paused"] .item-icon{outline-color:#798da6}
.connection-board[data-detail="icon"] .node-warning{position:absolute;left:69px;top:0;font-size:28px}
.reduce-motion .node-warning{animation:none}
@media(prefers-reduced-motion:reduce){.node-warning{animation:none}}

/* Mob encounter and JEI layout */
.mob-source{position:absolute;left:14px;top:12px;display:flex;align-items:center;gap:5px;color:#dcebd5;font-size:10px}.mob-icon{width:44px;height:44px;image-rendering:pixelated;filter:drop-shadow(0 2px 2px #000)}.pool-visual:has(.mob-source) .resource-button{transform:translateY(14px)}.jei-layout{display:grid;grid-template-columns:190px minmax(0,1fr) 250px;gap:14px;align-items:start}.jei-left,.jei-right{position:sticky;top:16px;max-height:calc(100vh - 140px);overflow:auto}.jei-left{min-height:180px}.jei-left-title{margin-top:22px;border-top:1px solid var(--line);padding-top:14px}.jei-left>.item-icon{width:46px;height:46px;vertical-align:middle;margin:6px}.jei-favorites{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.jei-favorite,.jei-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px;min-height:57px;background:#1c271f;border:1px solid var(--line);color:var(--text)}.jei-favorite .item-icon,.jei-item .item-icon{width:31px;height:31px}.jei-favorite small,.jei-item small{font-size:9px;line-height:1.1;text-align:center;overflow:hidden;max-width:100%}.jei-item-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:10px}.jei-item.selected{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:#2d3d26}.jei-main{min-width:0}.jei-main .recipe-card{margin-bottom:12px}.jei-recipe .recipe-pixel{cursor:pointer}.bench-guide{margin-bottom:16px}.connection-board{transition:transform .18s cubic-bezier(.2,.8,.2,1)}.connection-board[data-detail="icon"] .port-node{background:#17231b;border-color:#647865;box-shadow:0 0 0 2px #263829}.connection-board[data-detail="icon"] .port-node[data-run-state="running"]{border-color:#8ed27c;box-shadow:0 0 0 2px #8ed27c}.connection-board[data-detail="icon"] .port-node[data-run-state="warning"]{border-color:#e9ac5c;box-shadow:0 0 0 2px #e9ac5c}.connection-board[data-detail="icon"] .port-node[data-run-state="paused"]{border-color:#798da6;box-shadow:0 0 0 2px #798da6}.connection-board[data-detail="compact"] .node-recipe,.connection-board[data-detail="icon"] .node-handle{display:flex;align-items:center;justify-content:center}.connection-board[data-detail="compact"] .node-recipe{transform:scale(1.08);transform-origin:center}.connection-board[data-detail="icon"] .node-handle{min-height:78px}.connection-board[data-detail="icon"] .node-handle .item-icon{margin:auto}.connection-board .port-node{transition:border-color .18s,box-shadow .18s,background .18s}
@media(max-width:900px){.jei-layout{grid-template-columns:150px minmax(0,1fr)}.jei-right{grid-column:1/-1;position:static;max-height:none}.jei-item-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}@media(max-width:650px){.jei-layout{grid-template-columns:1fr}.jei-left{position:static;max-height:none;display:flex;align-items:center;gap:10px}.jei-left-title{margin:0 0 0 auto;border:0;padding:0}.jei-favorites{display:flex;overflow:auto}.jei-favorite{min-width:55px}.jei-main{order:2}.jei-right{order:1}.jei-item-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.jei-item{min-height:52px}.jei-item .item-icon{width:28px;height:28px}.jei-left>.item-icon{width:34px;height:34px}}


/* The atlas and map refinements are owned here; existing world/art stays intact. */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.workspace {
  max-width: 1680px;
}
.catalog-layout {
  display: grid;
  grid-template-columns: 174px minmax(300px, 1fr) 292px;
  gap: 16px;
  align-items: start;
}
.catalog-layout > * {
  min-width: 0;
}
.catalog-favorites,
.catalog-browser {
  position: sticky;
  top: 16px;
  padding: 16px;
  max-height: calc(100vh - 32px);
  overflow: auto;
}
.catalog-panel-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  color: #a8b89b;
  font: 11px/1.5 monospace;
  letter-spacing: 1px;
  margin-bottom: 18px;
}
.catalog-panel-heading button {
  min-height: 30px;
  padding: 2px 9px;
}
.catalog-favorites h3 {
  font-size: 13px;
  border-top: 1px solid var(--line);
  padding-top: 15px;
  margin: 18px 0 10px;
}
.catalog-bookmarks {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.catalog-bookmarks button {
  display: flex;
  gap: 8px;
  align-items: center;
  text-align: left;
  font-size: 12px;
  padding: 7px;
  min-width: 0;
  overflow-wrap: anywhere;
}
.catalog-bookmarks .item-icon {
  width: 26px;
  height: 26px;
}
.catalog-selected {
  padding: 19px;
  margin-bottom: 14px;
  background: linear-gradient(115deg, #263522, #19201b 80%);
}
.catalog-selected-item {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 20px;
  min-width: 0;
}
.catalog-selected-item > .item-icon {
  width: 48px;
  height: 48px;
}
.catalog-selected-item > div {
  min-width: 0;
  overflow-wrap: anywhere;
}
.catalog-selected-item > button {
  margin-left: auto;
  font-size: 23px;
  color: var(--gold);
}
.catalog-mode {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}
.catalog-mode button {
  font-size: 12px;
  min-height: 34px;
  padding: 4px 12px;
}
.catalog-mode button.active {
  border-color: var(--green);
  color: var(--green);
  background: #304126;
}
.catalog-mode > span {
  font-size: 11px;
  color: var(--muted);
  margin-left: auto;
}
.catalog-guide {
  padding: 12px 16px;
  border-left: 3px solid var(--green);
  background: #25301f;
  margin-bottom: 18px;
  font-size: 13px;
}
.bench-guide {
  display: flex;
  align-items: center;
  gap: 14px;
  justify-content: space-between;
  flex-wrap: wrap;
}
.catalog-browser input {
  width: 100%;
  min-width: 0;
  font-size: 13px;
}
.catalog-item-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 5px;
  margin: 12px 0;
}
.catalog-item-grid .catalog-item {
  padding: 3px;
  min-height: 38px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 3px;
  background: #101912;
  position: relative;
}
.catalog-item-grid .item-icon {
  width: 28px;
  height: 28px;
  max-width: 100%;
}
.catalog-item.selected {
  border-color: var(--green);
  box-shadow: inset 0 0 0 1px #b7df8760;
}
.catalog-item:hover {
  background: #35462b;
}
.catalog-result-count,
.catalog-recipe-count {
  font-size: 11px;
  color: var(--muted);
  margin: 9px 0;
}
.catalog-pager {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin: 14px 0 4px;
  font-size: 12px;
  color: var(--muted);
}
.catalog-pager button {
  min-height: 32px;
  padding: 3px 12px;
}
.catalog-main .recipe-card {
  margin-bottom: 12px;
  padding: 18px;
  overflow: hidden;
}
.catalog-main .recipe-head {
  gap: 11px;
  align-items: flex-start;
}
.catalog-main .recipe-head > div {
  min-width: 0;
  flex: 1;
  overflow-wrap: anywhere;
}
.catalog-main .recipe-head h3 {
  font-size: 16px;
}
.catalog-main .bookmark-recipe {
  margin-left: auto;
  min-height: 30px;
  padding: 1px 8px;
  color: var(--gold);
  font-size: 23px;
}
.catalog-main .image-recipe {
  background: #111912;
  border: 1px solid #35432e;
  border-radius: 7px;
  padding: 13px;
  margin: 14px 0;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.catalog-main .recipe-inputs,
.catalog-main .recipe-outputs {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  align-items: center;
}
.catalog-main .recipe-pixel {
  background: #263022;
  border: 1px solid #4a573e;
  width: 47px;
  height: 51px;
  min-height: 51px;
  padding: 5px;
  position: relative;
  border-radius: 3px;
  display: grid;
  place-items: center;
}
.catalog-main .recipe-pixel.available {
  border-color: #6c9152;
}
.catalog-main .recipe-pixel .item-icon {
  width: 32px;
  height: 32px;
}
.catalog-main .recipe-pixel b {
  position: absolute;
  bottom: 0;
  right: 2px;
  font: 11px monospace;
  text-shadow: 1px 1px #000;
  background: #182015cc;
}
.catalog-main .recipe-pixel b small {
  font-size: 8px;
}
.catalog-main .recipe-pixel em {
  position: absolute;
  top: -5px;
  right: -2px;
  font-size: 9px;
  font-style: normal;
  color: #e0c788;
  background: #25291c;
  padding: 0 2px;
}
.catalog-main .recipe-foot {
  flex-wrap: wrap;
}
.catalog-main .recipe-foot input {
  width: 65px;
  min-width: 0;
}
.catalog-main .recipe-foot button {
  font-size: 12px;
  padding: 8px;
  min-width: 60px;
  overflow-wrap: anywhere;
}
.catalog-main .recipe-foot button[data-action="craft"] {
  flex: 3;
}
.factory-order {
  width: 100%;
  margin-top: 10px;
  font-size: 12px;
  background: #263522;
}
.recipe-notes {
  font-size: 12px;
  color: var(--muted);
  margin-top: 10px;
  overflow-wrap: anywhere;
}
.connection-board {
  transition: none !important;
}
.connection-board .port-node {
  --state-color: #647865;
  border: 2px solid var(--state-color) !important;
  background: #17231b !important;
  box-shadow: none !important;
}
.connection-board .port-node[data-run-state="running"] {
  --state-color: #8ed27c;
}
.connection-board .port-node[data-run-state="warning"] {
  --state-color: #e9ac5c;
}
.connection-board .port-node[data-run-state="paused"] {
  --state-color: #798da6;
}
.connection-board[data-detail="compact"] .port-node .node-recipe {
  position: absolute;
  inset: 18% 7%;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  overflow: hidden;
  visibility: visible;
}
.connection-board[data-detail="compact"] .recipe-sprites {
  justify-content: center;
  gap: 8px;
}
.connection-board[data-detail="compact"] .recipe-sprites .item-icon {
  width: 44px;
  height: 44px;
}
.connection-board[data-detail="compact"] .recipe-sprites small {
  font-size: 14px;
}
.connection-board[data-detail="icon"] .node-handle {
  position: absolute;
  inset: 10%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
}
.connection-board[data-detail="icon"] .node-handle > .item-icon {
  position: absolute;
  width: 85% !important;
  height: 85% !important;
  max-width: 190px;
  max-height: 220px;
  object-fit: contain;
  outline: none !important;
  background: transparent !important;
  padding: 0;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.connection-board[data-detail="icon"] .node-warning {
  position: absolute;
  top: 0;
  right: 0;
  left: auto;
  font-size: 36px;
}
.connection-board[data-detail="compact"] .node-warning {
  position: absolute;
  top: 0;
  right: 0;
}
.recipe-progress-background i {
  transition: none !important;
  animation: none !important;
}
.mob-source {
  display: none;
}
.pool-visual:has(.mob-source) .resource-button {
  transform: none;
}
.nav {
  overflow-y: auto;
}
@media (max-width: 1200px) {
  .catalog-layout {
    grid-template-columns: 140px minmax(250px, 1fr) 222px;
    gap: 10px;
  }
  .catalog-item-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .catalog-favorites,
  .catalog-browser {
    padding: 12px;
  }
  .workspace {
    padding: 22px;
  }
  .sidebar {
    width: auto;
  }
}
@media (max-width: 1000px) {
  .catalog-layout {
    grid-template-columns: minmax(0, 1fr) 225px;
  }
  .catalog-favorites {
    grid-column: 1/-1;
    position: static;
    max-height: 180px;
    display: flex;
    gap: 15px;
    align-items: flex-start;
  }
  .catalog-favorites h3 {
    border: 0;
    margin: 0;
    padding: 0;
  }
  .catalog-favorites .catalog-panel-heading {
    display: none;
  }
  .catalog-bookmarks {
    flex-direction: row;
    flex-wrap: wrap;
    flex: 1;
  }
  .catalog-bookmarks button {
    max-width: 150px;
  }
  .catalog-browser {
    grid-column: 2;
    grid-row: 2;
  }
  .catalog-main {
    grid-column: 1;
    grid-row: 2;
  }
}
@media (max-width: 650px) {
  .workspace {
    padding: 18px 12px;
  }
  .catalog-layout {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .catalog-layout > * {
    width: 100%;
  }
  .catalog-browser {
    order: 0;
    position: static;
    max-height: none;
  }
  .catalog-main {
    order: 1;
  }
  .catalog-favorites {
    order: 2;
    max-height: 240px;
    overflow: auto;
    flex-wrap: wrap;
  }
  .catalog-item-grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    max-height: 190px;
    overflow: auto;
  }
  .catalog-item-grid .catalog-item {
    min-height: 36px;
  }
  .catalog-item-grid .item-icon {
    width: 27px;
    height: 27px;
  }
  .catalog-selected {
    padding: 15px;
  }
  .catalog-main .recipe-card {
    padding: 14px;
  }
  .catalog-browser .catalog-panel-heading {
    margin-bottom: 10px;
  }
  .catalog-mode > span {
    width: 100%;
    margin-left: 0;
  }
  .nav {
    overflow-y: visible;
  }
  .catalog-selected-item h2 {
    font-size: 19px;
  }
  .catalog-selected-item > .item-icon {
    width: 38px;
    height: 38px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .node-warning {
    animation: none !important;
  }
}
.layered-item {
  position: relative;
  display: inline-block;
}
.layered-item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  image-rendering: pixelated;
}
.connection-board[data-detail="icon"] .node-handle > .layered-item {
  position: absolute;
  width: 85%;
  height: 85%;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.native-mob-head { display:inline-block; width:76px; max-height:100%; background-repeat:no-repeat; image-rendering:pixelated; filter:drop-shadow(0 8px 12px #0006); pointer-events:none; }
.circuit-badge { display:grid; place-items:center; border:1px solid #c5a56b70; background:#c5a56b12; padding:8px; border-radius:8px; color:#e8c990; }
.circuit-badge small { font-size:10px; }
.tinker-header { margin:20px 0; }
.tinker-stations { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:20px 0; }
.tinker-stations button { display:grid; justify-items:center; padding:16px 8px; gap:8px; }
.tinker-stations .active,.tinker-choices .active { border-color:var(--accent,#b1df79); background:#b1df7918; }
.tinker-stations small { color:var(--muted); font-size:11px; }
.tinker-workspace { display:grid; grid-template-columns:220px 1fr; gap:18px; }
.tinker-choices { display:flex; flex-direction:column; gap:8px; }
.tinker-choices button { display:flex; align-items:center; gap:12px; text-align:left; }
.tinker-bench { padding:24px; }
.tinker-preview { display:flex; align-items:center; justify-content:center; gap:20px; min-height:145px; }
.tinker-preview>.item-icon { width:76px; height:76px; }
.tinker-slots { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.tinker-slot { display:grid; justify-items:center; gap:8px; padding:18px; min-width:120px; border:1px dashed #ffffff30; background:#0002; border-radius:8px; }
.tinker-slot.filled { border-color:#b1df7980; }
.tinker-slot strong { font-size:13px; }
.tinker-slot>span { font-size:12px; color:var(--muted); }
.tinker-stats { display:flex; justify-content:center; gap:24px; padding:24px 0; }
.tinker-stats span { color:var(--muted); font-size:12px; }
.tinker-stats b { display:block; text-align:center; font-size:22px; color:var(--text); }
.tinker-tools { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; }
.tinker-owned { padding:20px; }
.tinker-owned progress { width:100%; accent-color:#b1df79; }
@media(max-width:700px) { .tinker-workspace { grid-template-columns:1fr; } .tinker-choices { display:grid; grid-template-columns:1fr 1fr; } .tinker-stations { grid-template-columns:1fr 1fr; } .tinker-bench { padding:16px; } .tinker-stats { gap:18px; } }
.space-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,1fr);gap:20px;margin:24px 0}.space-grid>.card,.wither-card{padding:24px}.launch-orbit{display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line);padding:24px 0}.launch-orbit img{width:72px;height:72px;image-rendering:pixelated}.launch-orbit i{color:#b1df79;font-size:32px}.launch-needs{display:grid;gap:12px;margin:24px 0}.launch-needs .ingredient{gap:12px}.flight-readout{font-size:32px;font-variant-numeric:tabular-nums;color:#b1df79}.wither-card>div:first-child{display:flex;gap:16px;align-items:center}.wither-card .native-mob-head{width:48px}.space-grid li{padding:7px 0;line-height:1.5}.space-grid p{line-height:1.7}.wither-card select{max-width:100%;margin-right:12px}@media(max-width:800px){.space-grid{grid-template-columns:1fr}.launch-needs .ingredient{flex-wrap:wrap}}

/* Text-only identity markers have no borrowed or fabricated bitmap. */
.texture-missing{display:inline-flex;align-items:center;justify-content:center;border:1px dashed #5a6854;border-radius:5px;background:transparent;color:#b5bfaf;font-size:10px;font-style:normal;text-align:center;overflow:hidden;line-height:1.25;flex-shrink:0;image-rendering:auto}
.native-mob-head{object-fit:contain;image-rendering:pixelated}
.snow-flake{background-image:none!important;background:rgba(230,244,250,.8);border-radius:50%}

.pool-visual>.texture-missing{width:66px;height:66px;font-size:14px}
/* Each assembly slot owns an expandable grid; no global material dropdown. */
.tinker-bench{min-width:0}.tinker-preview h2{overflow-wrap:anywhere;font-size:22px}
.tinker-components{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:14px}
.tinker-component{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#0002;text-align:center}
.tinker-component-current{display:grid;justify-items:center;gap:8px;width:100%;padding:14px 8px}
.tinker-component-current>.item-icon{width:40px;height:40px}.tinker-component-current small{font-size:11px;color:var(--muted)}
.tinker-material-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:10px}
.tinker-material-grid button{display:grid;justify-items:center;align-content:start;gap:5px;min-width:0;padding:9px 3px;border-radius:3px;font-size:12px}
.tinker-material-grid .active{border-color:var(--accent,#b1df79);background:#b1df7918}.tinker-material-grid small{font-size:10px;color:var(--muted)}
.tinker-missing{color:#f0c68a;font-size:13px;overflow-wrap:anywhere}
@media(max-width:700px){.tinker-components{grid-template-columns:1fr}.tinker-material-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tinker-preview h2{font-size:17px}}

/* Prebuilt pack icons use smooth silhouettes while keeping baked pixel material. */
img.pig-texture{image-rendering:auto}

/* Icon-only pig settings; accessible names stay available to assistive tools. */
.pig-settings-icon{width:32px;height:32px;display:inline-block;vertical-align:middle;flex:none}.pig-settings-panel{display:flex;justify-content:center;align-items:center;min-height:240px}.pig-settings-toggle{width:150px;height:150px;padding:15px;border-radius:24px}.pig-settings-toggle .pig-settings-icon{width:112px;height:112px}.pig-settings-toggle[aria-pressed="true"]{background:#35462c;border-color:#b7df87;box-shadow:0 0 0 3px #b7df8733}.pig-settings-dialog{text-align:center;min-width:220px}.pig-settings-dialog h2{display:flex;justify-content:center;align-items:center;font-size:38px;gap:6px}.pig-settings-dialog h2 .pig-settings-icon{width:84px;height:84px}.pig-settings-dialog .actions{justify-content:center}.pig-settings-dialog .actions button{display:inline-flex;align-items:center;justify-content:center;min-width:88px;min-height:50px;font-size:20px}.subtabs [data-id="pig"]{min-width:54px;justify-content:center}

.native-mob-head.pig-texture{image-rendering:auto}

/* v0.9.27 resource help and release notes */
.resource-sources{padding:12px;border:1px solid var(--line);border-radius:8px;margin-bottom:14px}.resource-sources h3{margin-bottom:10px}.changelog section+section{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.changelog li{margin:8px 0;line-height:1.6}.buffer-square{padding:0;min-width:0;cursor:pointer}.buffer-square:disabled{cursor:default;opacity:1}

/* Machine buffer buttons keep the original square corners. */
.buffer-squares .buffer-square{border-radius:0;width:34px;height:34px;min-width:34px;min-height:34px;max-width:34px;max-height:34px;flex:0 0 34px;aspect-ratio:1;display:grid;place-items:center;padding:0;margin:0;line-height:1}
.buffer-square .item-icon{margin:0}
.buffer-square b{bottom:0;line-height:12px}


.tab-item-icon{width:27px;height:27px;object-fit:contain;image-rendering:pixelated;flex:none}.nav button .tab-item-icon{width:30px;height:30px}.subtabs button{display:inline-flex;align-items:center;gap:8px}
.catalog-favorites .catalog-bookmarks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;flex-direction:initial}.catalog-favorites .catalog-bookmarks>p{grid-column:1/-1}.catalog-favorites .catalog-bookmarks button{position:relative;display:flex;justify-content:center;align-items:center;aspect-ratio:1;padding:5px;min-width:0;width:100%;border:1px solid #4c5647;background:#222a23;box-shadow:inset 2px 2px #121913,inset -2px -2px #64705a;border-radius:2px}.catalog-favorites .catalog-bookmarks button:hover{background:#3b4c30;border-color:#b1df79}.catalog-favorites .catalog-bookmarks .item-icon{width:30px;height:30px}.catalog-favorites .recipe-equipment{position:absolute;right:0;bottom:0;width:19px;height:19px;border:1px solid #8d9b80;background:#151e17;border-radius:3px;display:flex;align-items:center;justify-content:center}.catalog-favorites .recipe-equipment .item-icon{width:16px;height:16px}.hand-badge{font-size:10px;color:#ccd4bf}
.stage-banner{padding:24px;margin-bottom:30px;background:linear-gradient(110deg,#304327,#18251e)}.stage-banner h1{font-size:38px;margin:7px 0 20px}.stage-banner h1 small{font-size:13px;margin-left:16px;color:#c1cba8}.stage-track{display:flex;gap:0;max-width:720px}.stage-track>span{position:relative;flex:1;text-align:center;border-bottom:3px solid #465442;padding:10px 3px;color:#a7b09f}.stage-track>.current{border-color:#c0e989;color:#daf9aa;background:#b1df7914}.stage-track>.passed{border-color:#799950}.quest-tree{position:relative}.quest-tree:before{content:'';position:absolute;top:26px;bottom:60px;left:30px;width:2px;background:#57684b}.quest-stage{display:grid;grid-template-columns:100px minmax(0,1fr);gap:20px;margin-bottom:30px;position:relative}.quest-stage-root{align-self:start;background:#1c281e;z-index:1;border:1px solid #566b48;border-radius:10px;padding:12px;text-align:center}.quest-stage-root.current{border-color:#c2e48d;box-shadow:0 0 24px #b1df7918}.quest-stage-root>span{font:11px monospace;color:#a9c88d}.quest-stage-root h2{margin:6px 0;font-size:19px}.quest-branches{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-left:20px;border-left:1px solid #57684b}.quest-branches:before{content:'';position:absolute;left:-20px;top:30px;width:20px;border-top:1px solid #57684b}.quest-node{padding:18px;position:relative}.quest-node:before{content:'';position:absolute;left:-21px;width:20px;top:30px;border-top:1px solid #57684b}.quest-node-heading{display:flex;justify-content:space-between;gap:12px}.quest-node-heading span{font:12px monospace;color:#b8c998}.quest-node h3{font-size:15px}.quest-node p{font-size:12px;color:#a9b3a1;line-height:1.7;margin:10px 0 14px}.quest-node.complete{border-color:#7c9e52}.quest-node.in-progress{border-color:#606f4d}.quest-leaves{display:flex;flex-wrap:wrap;gap:7px}.quest-leaves button{width:42px;height:42px;padding:5px;position:relative;border-radius:4px}.quest-leaves button.complete{background:#354928;border-color:#88a960}.quest-leaves .item-icon{width:28px;height:28px}.quest-leaves b{position:absolute;right:0;bottom:-2px;color:#dbff9a;font-size:12px}.quest-finale{margin-left:120px;display:flex;align-items:center;gap:18px;padding:24px}.quest-finale>.item-icon{width:52px;height:52px}.quest-finale p{font-size:12px;color:#a9b3a1}.quest-finale.complete{border-color:#b1df79}
.launch-scene{position:relative;background:#0b171e;border:1px solid #49624b;border-radius:12px;overflow:hidden;margin-bottom:24px}.launch-scene canvas{display:block;width:100%;height:410px;touch-action:pan-y;cursor:grab}.launch-scene canvas:active{cursor:grabbing}.launch-scene-label{position:absolute;top:18px;left:18px;font:10px monospace;letter-spacing:2px;color:#bfd0ba;pointer-events:none}.launch-scene-hud{position:absolute;right:18px;top:18px;text-align:right;pointer-events:none}.launch-scene-hud strong{display:block;color:#dfffad;font:34px monospace}.launch-scene-hud small{font-size:11px;color:#b4c0b0}.launch-scene-help{position:absolute;bottom:12px;left:18px;color:#c4d1bf;font-size:10px;pointer-events:none}.launch-scene .scene-controls{position:absolute;bottom:10px;right:12px;display:flex;gap:5px}.scene-controls button{padding:3px 9px;font-size:13px;background:#15251ddd}.launch-needs:empty{display:none}
@media(max-width:1050px){.quest-branches{grid-template-columns:1fr}}@media(max-width:600px){.quest-stage{grid-template-columns:60px minmax(0,1fr);gap:12px}.quest-stage-root{padding:10px 3px}.quest-stage-root h2{font-size:16px}.quest-branches{padding-left:12px}.quest-node{padding:12px}.quest-node:before{left:-13px;width:12px}.quest-finale{margin-left:0;flex-wrap:wrap}.launch-scene canvas{height:340px}.launch-scene-hud strong{font-size:28px}.launch-scene-label{font-size:8px;max-width:100px;line-height:1.8}.catalog-favorites .catalog-bookmarks{grid-template-columns:repeat(auto-fill,44px)}.stage-banner{padding:18px}.space-grid>.card{padding:14px}}

.assembly-step{padding:16px 0;border-top:1px solid var(--border,#35443b)}.assembly-step button{margin:4px}.casting-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(300px,1.4fr);gap:16px}.casting-metals{display:grid;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:12px;margin:16px 0}.casting-metals>div{display:grid;gap:6px}.casting-recipes{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.casting-recipes article{border:1px solid #435047;padding:12px;border-radius:8px}.casting-recipes button{margin-top:6px}.power-overview dl>div{display:flex;justify-content:space-between;gap:12px;margin:12px 0}.power-overview dd{margin:0;font-variant-numeric:tabular-nums}.power-overview progress{width:100%}.network-stats{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:680px){.casting-grid,.network-stats{grid-template-columns:1fr}}

.moon-victory{text-align:center;max-width:560px;padding:14px 10px}.moon-victory h2{font-size:clamp(28px,6vw,42px);color:#e3c47d;margin:18px 0}.victory-emblem{display:grid;place-items:center;width:110px;height:110px;margin:24px auto 12px;border:1px solid #e3c47d66;border-radius:50%;background:radial-gradient(circle,#e3c47d25,transparent 70%)}.victory-emblem .item-icon{width:72px;height:72px}.victory-lead{font-size:17px;line-height:1.7}.victory-stages{color:#e3c47d;padding:18px 0;line-height:2}.victory-stages span{color:#8c9b84;margin:0 5px}.moon-victory .actions{justify-content:center;flex-wrap:wrap;margin-top:24px}.network-stats .chart-card{min-width:0}.network-stats .history-chart{width:100%}

/* Resource artwork stays readable even when the selected tool cannot mine it. */
.pool-visual .resource-button>.item-icon{width:66px;height:66px;filter:drop-shadow(0 13px 8px #0006);transition:transform .16s ease-out}.pool-visual .resource-button:disabled{opacity:1;cursor:not-allowed!important}.pool-visual .resource-button:enabled:hover>.item-icon,.pool-visual .resource-button:enabled:focus-visible>.item-icon{transform:scale(1.2)}.pool-visual .resource-button:enabled:active>.item-icon{transform:scale(.92)}.pool-visual .resource-button:disabled>.item-icon{transform:none}

.pool-yield-note{padding:10px 15px 0;color:var(--muted);font-size:12px;line-height:1.6}

/* Original GTNH emblem, shared with the browser tab icon. */
.brand>.gtnh-logo{width:48px;height:48px;object-fit:contain;flex-shrink:0}.brand{gap:10px;padding-left:0;padding-right:0}.brand strong{font-size:20px}.brand small{font-size:10px;letter-spacing:1.5px}.mobile-brand>.gtnh-logo{width:34px;height:34px;object-fit:contain;flex-shrink:0}@media(max-width:650px){.mobile-brand{display:flex;align-items:center;gap:8px;font-size:17px;white-space:nowrap}}

/* Agriculture: a spatial plot grid with persistent crop and seed management. */
.farm-layout{display:grid;grid-template-columns:minmax(280px,1.35fr) minmax(300px,1fr);gap:22px;align-items:start}.farm-summary{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:20px;color:var(--muted);font-size:13px}.farm-summary button{margin-left:auto}.farm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.farm-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;min-height:148px;padding:17px 8px 12px;background:linear-gradient(#293728aa,#30281e);border:1px solid #4d4b34}.farm-tile.selected{border-color:#c5e49e;box-shadow:0 0 0 2px #aace722b}.farm-tile.crop{background:linear-gradient(#253925,#252c20)}.farm-tile.weed{border-color:#a78143}.farm-tile.soil{background:repeating-linear-gradient(0deg,#302b21 0 8px,#362e22 8px 10px);border-style:dashed}.farm-coordinate{position:absolute;top:7px;left:9px;font:10px monospace;color:#a3a78e}.farm-sprite{height:60px;width:60px;object-fit:contain;image-rendering:pixelated}.farm-tile strong{font-size:14px}.farm-tile small{font-size:11px;color:var(--muted)}.farm-tile progress{height:4px;width:80%;accent-color:#aacf78}.farm-soil-mark{display:grid;place-items:center;height:60px;font-size:28px;color:#7d8768}.farm-grid-caption{margin-top:14px}.farm-detail h2{margin:10px 0}.farm-hint{color:var(--muted);line-height:1.8;font-size:13px;min-height:46px}.farm-genetics{display:flex;gap:18px;margin:20px 0}.farm-genetics span{font-size:12px;color:var(--muted)}.farm-genetics b{display:block;font-size:25px;color:var(--green);margin-top:6px}.farm-environment{margin:20px 0;display:grid;gap:8px;font-size:13px}.farm-environment>div{display:flex;justify-content:space-between}.farm-environment dt{color:var(--muted)}.farm-environment dd{margin:0}.farm-actions{display:flex;flex-wrap:wrap;gap:9px}.farm-actions button{font-size:12px}.farm-care{display:flex;flex-wrap:wrap;gap:8px;width:100%;border-top:1px solid var(--line);padding-top:16px;margin-top:6px}.farm-seed-label{display:flex;flex-direction:column;gap:8px;width:100%;color:var(--muted);font-size:12px}.farm-seed-label select{width:100%}.farm-seeds{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.farm-seeds h3{margin:12px 0}.farm-seeds p{margin:8px 0;font-size:13px}.farm-seeds button{margin:6px 6px 0 0;font-size:12px}.farm-crop-entry h3 small{color:var(--muted);font:12px monospace}.farm-guide{max-width:900px}.farm-guide h3{margin-top:22px}.farm-guide ol{padding-left:22px;line-height:2.2;margin:16px 0}.farm-guide p{margin:12px 0;line-height:1.8}.farm-guide .filters{margin-top:22px}.nav{overflow-y:auto}
@media(max-width:1050px){.farm-layout{grid-template-columns:1fr}.farm-detail{max-width:none}}@media(max-width:650px){.nav{grid-template-columns:repeat(8,minmax(0,1fr))!important}.farm-grid{gap:8px}.farm-tile{min-height:130px;padding:16px 4px 10px}.farm-tile strong{font-size:12px}.farm-sprite{width:48px;height:48px}.farm-summary{gap:12px}.farm-summary button{margin-left:0}.farm-seeds{grid-template-columns:1fr}.farm-guide ol{font-size:13px}.farm-layout{gap:16px}}

.support-reward-row>div{max-width:none;width:100%}.support-tool-list{display:flex;flex-wrap:wrap;gap:14px;margin:20px 0}.support-tool-list>span{display:flex;align-items:center;gap:6px}.support-tool-list small{font-size:12px;color:var(--muted)}.support-reward-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:18px 0}.support-reward-actions .source-link{margin:0}#support-reward-status{color:var(--green);min-height:20px}.support-reward-row{padding:22px 0}

.support-rewards-page{max-width:920px}.support-rewards-page .support-reward-row:first-child{padding-top:0}
@media(max-width:650px){.sidebar{left:0;right:0;width:100%}.nav button{min-width:0}}

/* v0.9.4 exploration and storage */
.pool-default{display:flex;align-items:center;gap:5px;padding:3px 6px;min-height:38px;background:#101b14;border-radius:4px;font-size:10px}.pool-default .item-icon{width:25px;height:25px}.pool-default small{font-size:10px}.pool-default:disabled{opacity:.65}.pool-top{gap:8px}.pool-default>span{color:var(--muted)}.empty-resource-icon{font-size:22px}.empty-pool{text-align:center;color:var(--muted)}.empty-pool>span{display:block;font-size:44px;color:#74866f}.empty-pool p{font-size:12px}.pool .probe{flex-wrap:wrap}.probe button{display:flex;gap:8px;align-items:center}.probe .item-icon{width:27px;height:27px}.probe-picker{max-height:56vh;overflow:auto;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:5px}.probe-picker button{display:flex;flex-direction:column;align-items:center;padding:6px;min-height:70px}.probe-picker small{font-size:10px}.probe-picker .item-icon{width:32px;height:32px}
.transport-choice{min-width:0}.transport-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:4px!important;max-height:230px;overflow:auto;margin:10px 0}.transport-grid button,.pattern-storage-grid button{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;min-height:42px;padding:4px;border-radius:2px;background:#18221a;border:1px solid #536249;box-shadow:inset 2px 2px #0c140e,inset -2px -2px #647256}.transport-grid button.selected{border:2px solid #c7e995;background:#3e512c}.transport-grid .item-icon{width:27px;height:27px}.transport-grid small{position:absolute;right:2px;bottom:-3px;font-size:10px;color:#e3edda;text-shadow:1px 1px #000}.pattern-storage-grid{display:grid;grid-template-columns:repeat(auto-fill,56px);gap:5px;margin:12px 0 22px}.pattern-storage-grid>p{grid-column:1/-1}.pattern-storage-grid small{position:absolute;right:2px;bottom:0;font-size:10px}.farm-detail{position:sticky;top:90px;max-height:calc(100vh - 110px);overflow:auto;align-self:start}.farm-tile{touch-action:manipulation}
.side-clock{position:relative;overflow:hidden;isolation:isolate;background:#1a3027}.side-clock .clock-landscape{position:absolute;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none}.side-clock:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#07150dcf,#09150a60);pointer-events:none}.side-clock strong,.side-clock small,.clock-digits{position:relative;color:#edf1df;text-shadow:0 1px 3px #000}.side-clock .clock-face{background:#15251cd9}
@media(max-width:1050px){.farm-detail{position:static;max-height:none;overflow:visible}}@media(max-width:650px){.pool-default small{display:none}.transport-grid{grid-template-columns:repeat(auto-fill,minmax(40px,1fr))}.transport-choices{grid-template-columns:1fr}.pool-actions{grid-template-columns:1fr 54px}.probe-picker{grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}}

@media(max-width:650px){.pool-grid{grid-template-columns:1fr}.pool-default small{display:inline}.pool-default{font-size:11px}.pool .probe{gap:8px}.pool .probe button{white-space:nowrap}.pool-visual{height:150px}}

/* v0.9.5 compact connection material picker */
.transport-current{display:flex;align-items:center;gap:10px;width:100%;margin:10px 0 8px;padding:10px;text-align:left;min-width:0}.transport-current>.item-icon{width:32px;height:32px;flex-shrink:0}.transport-current>span:first-of-type{flex:1;min-width:0}.transport-current b{display:block;overflow-wrap:anywhere}.transport-current small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.transport-current .transport-change{flex-shrink:0;font-size:11px;color:var(--muted)}.transport-parameters{display:block;line-height:1.6}.transport-current[aria-expanded="true"]{border-color:#c7e995}

/* Recursive manual crafting report */
.auto-craft-report{max-width:620px}.auto-craft-report h3{margin:18px 0 9px}.auto-craft-list{display:grid;gap:6px}.auto-craft-row{display:flex;align-items:center;gap:10px;padding:8px;background:#1b271e;border:1px solid #42503d}.auto-craft-row .item-icon{width:30px;height:30px;flex-shrink:0}.auto-craft-row>span{flex:1;min-width:0;overflow-wrap:anywhere}.auto-craft-row small{display:block;color:var(--muted);font-size:11px}.auto-craft-row>b{font-size:12px;flex-shrink:0}.auto-craft-report details{margin:18px 0}.auto-craft-report li{margin:6px 0}

/* Compact pool resource browser: no captions inside the item grid. */
.pool-name .pool-resources-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;min-height:0;padding:5px;margin-left:2px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--muted);line-height:1}
.pool-resources-toggle svg{display:block;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.2}
.pool-name .pool-resources-toggle:hover,.pool-name .pool-resources-toggle:focus-visible{color:var(--green);border-color:currentColor}
.item-picker-grid.pool-resource-grid{grid-template-columns:repeat(auto-fill,48px);gap:5px;justify-content:start}
.pool-resource-grid>button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;min-height:0;padding:7px;border-radius:4px}
.pool-resource-grid>button .item-icon{width:32px;height:32px;flex:0 0 32px}
.pool-resource-grid>button.is-default{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}


.grid-controls{right:10px;top:10px;max-width:none}
.grid-controls button{font-size:11px;padding:6px 8px;min-height:30px}
.board-tools-dock{position:absolute;top:8px;left:50%;transform:translateX(-50%);z-index:17;width:208px;max-width:calc(100% - 16px);display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none}
.board-tool-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;width:100%;padding:3px;border:1px solid #5a7966;border-radius:6px;background:#14221ff5;pointer-events:auto}
.board-tool-grid button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:3px 2px;font-size:10px;min-height:35px;line-height:12px;background:#202921;box-shadow:none}
.board-tool-grid svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.board-tool-grid .tool-cross{stroke:#ff6868;stroke-width:3}
.board-tool-grid button[aria-pressed=true]{background:#396747;outline:1px solid #b3e998;outline-offset:-1px;color:#fff}
.board-tools-dock [data-board-remove-selected]{font-size:10px;min-height:24px;padding:3px 8px;pointer-events:auto;background:#202921}
.board-tools-dock [hidden]{display:none}
.board-tool-tip{font-size:10px;max-width:208px;padding:3px 5px;background:#12221fee;color:#c5dccb;border-radius:4px;text-align:center;pointer-events:none}
.board-tool-tip:empty{display:none}
.board-scroll[data-tool=select],.board-scroll[data-tool=area]{cursor:crosshair;touch-action:none;user-select:none}
.board-scroll[data-tool=remove]{cursor:not-allowed;touch-action:none;user-select:none}
.board-scroll:not([data-tool=pointer]) .connection-board *{cursor:inherit}
.connection-board [data-node].board-selected{outline:3px solid #f2da86;box-shadow:0 0 15px #f2da8655}
.board-selection-box{position:absolute;z-index:12;border:2px solid #ffe395;background:#ffe39522;pointer-events:none}
.dismantle-loss{max-height:220px;overflow:auto;color:#f2c397;overflow-wrap:anywhere}

@media(max-width:650px){.board-tools-dock{width:188px;top:6px}.board-scroll .board-minimap{top:60px}.grid-controls{top:auto;bottom:8px;right:8px}}

.connection-board [data-node].collision{outline:3px solid #ff6868}

.board-tool-grid button span{white-space:nowrap}
@media(max-width:650px){.board-tool-grid button span{font-size:9px}}


/* Scoped to inventory: machine grids remain square and unchanged. */
.storage-panel>header{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.storage-panel>header h3{margin:0;font-size:14px}
.container-controls{display:inline-flex;gap:5px}
.container-controls button{min-height:28px;padding:3px 8px;font-size:12px}
.storage-cell-grid{display:grid;grid-template-columns:repeat(auto-fill,44px);gap:4px;align-content:start;max-height:440px;overflow:auto;padding:3px}
.storage-cell{position:relative;width:44px;height:44px;min-height:44px;padding:5px;border:1px solid #566354;border-radius:0;background:#17231e;display:grid;place-items:center;touch-action:none;user-select:none}
.storage-cell .item-icon{width:30px;height:30px;margin:0;pointer-events:none}
.storage-cell .cell-count{position:absolute;right:2px;bottom:0;font-size:12px;line-height:15px;font-weight:bold;color:#fff;text-shadow:1px 1px #000,-1px -1px #000;pointer-events:none}
.storage-cell.selected{outline:2px solid var(--green);outline-offset:-2px;background:#334933}
.storage-cell.search-dimmed{opacity:.3}
.storage-selection{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding-top:10px;font-size:12px}
.storage-selection button{font-size:12px;min-height:28px;padding:4px 8px}
.storage-targets{z-index:1;border-radius:0}
.storage-targets>button{display:flex;align-items:center;gap:4px;padding:4px 7px;min-height:36px;border-radius:0;font-size:12px}
.storage-targets>button .item-icon{width:28px;height:28px;margin:0;pointer-events:none}
.storage-targets>button.over{background:#455a34}
.container-row:has(>.storage-panel){flex-wrap:wrap}
.container-row>.storage-panel{flex-basis:100%;min-width:0}
@media(max-width:650px){.storage-cell-grid{grid-template-columns:repeat(auto-fill,40px)}.storage-cell{width:40px;height:40px;min-height:40px}.storage-panel{padding:12px}}
.inventory-floating-actions{display:none}
@media(max-width:650px),(pointer:coarse){
 .inventory-floating-actions{display:flex;position:fixed;right:12px;bottom:calc(88px + env(safe-area-inset-bottom,0px));z-index:20;gap:6px;padding:8px;background:#17291ff2;border:1px solid var(--green);box-shadow:0 4px 18px #0008;border-radius:8px}
 .inventory-floating-actions button{min-height:44px;min-width:52px;padding:8px 12px}
 .inventory-floating-actions button:disabled{opacity:.35}
 .storage-selection{padding-bottom:70px}
}
.fluid-quickbar{display:block}
.fluid-quickbar .bucket-quick-row{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:4px;padding:3px;border:0;border-radius:0;min-height:50px}
.fluid-quickbar .bucket-quick-row .storage-cell{flex:0 0 44px;padding:5px}
.fluid-quickbar .tank-quick-grid{display:flex;flex-wrap:wrap;gap:5px;padding:8px 0 0;border:0;border-radius:0}
.fluid-quickbar .tank-quick-grid:empty{display:none}
.tank-quick-grid button{display:flex;align-items:center;gap:5px;border-radius:0;padding:4px 7px;font-size:12px}
.tank-quick-grid .item-icon{width:28px;height:28px;margin:0}
.filled-bucket-icon{image-rendering:pixelated}
.bucket-selection{padding:10px 0}
@media(max-width:650px){.fluid-quickbar .bucket-quick-row .storage-cell{flex-basis:40px}}


.factory-workspace{padding:8px!important}
.factory-workspace>.board-scroll{touch-action:none}
.factory-workspace>.board-scroll{height:calc(100dvh - 260px);min-height:540px;max-height:none;margin:0;position:relative}
.factory-workspace.expanded>.board-scroll{height:calc(100dvh - 20px);min-height:0;max-height:none}
.factory-workspace.expanded{padding:8px!important;overflow:auto}
.factory-workspace .grid-controls{display:flex;align-items:center;gap:4px;top:8px;right:8px;bottom:auto;z-index:18;max-width:none;background:#14221fee;padding:3px;border-radius:4px}
.factory-workspace #zoom-value{font-size:11px;min-width:34px;text-align:center}
.factory-workspace .grid-controls button{font-size:10px;min-height:28px;padding:3px 6px}
.factory-side-tools{position:absolute;right:8px;top:56px;z-index:18;display:grid;gap:5px}
.factory-side-tools>button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px;font-size:10px;min-width:44px;background:#14221ff5}
.factory-side-tools .item-icon,.factory-side-tools .icon{width:24px;height:24px;margin:0}
.factory-bottom-dock{position:absolute;bottom:8px;left:8px;right:8px;z-index:17;background:#122019ed;border:1px solid #526c59;padding:4px;display:flex;flex-direction:column;gap:3px;pointer-events:auto}
.factory-bottom-dock .transport-choices{display:flex;gap:4px;margin:0;padding:0;border:0;background:none}
.factory-bottom-dock .transport-choice{position:relative;flex:1;min-width:0;padding:3px;display:grid;grid-template-columns:minmax(0,1fr);gap:1px}
.factory-bottom-dock .transport-choice>strong,.factory-bottom-dock .transport-change,.factory-bottom-dock .transport-current small{display:none}
.factory-bottom-dock .transport-current{min-height:30px;padding:2px 4px;gap:5px;font-size:10px;display:flex}
.factory-bottom-dock .transport-current .item-icon{width:24px;height:24px;margin:0}
.factory-bottom-dock .transport-current b{font-size:10px}
.factory-bottom-dock .transport-parameters{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.factory-bottom-dock .transport-grid{position:absolute;bottom:100%;left:0;width:280px;max-width:80vw;max-height:240px;overflow:auto;background:#13241f;border:1px solid #6b8969;z-index:22}
.factory-bottom-dock .transport-choice:last-child .transport-grid{left:auto;right:0}
.factory-node-tools{display:flex;gap:4px;overflow-x:auto}
.factory-node-tools button{font-size:10px;padding:3px 7px;min-height:26px;white-space:nowrap}
.factory-backpack{position:absolute;right:62px;top:65px;z-index:19;width:346px;max-width:calc(100% - 74px);background:#15241ff5;border:1px solid #96bd7d;box-shadow:0 5px 20px #0009;border-radius:5px;padding:8px}
.factory-backpack header{display:flex;justify-content:space-between;align-items:center;cursor:move;touch-action:none;padding-bottom:5px;font-size:13px}
.factory-backpack header button{min-height:26px;padding:1px 8px}
.factory-backpack .storage-cell-grid{grid-template-columns:repeat(auto-fill,36px);gap:3px;max-height:220px;padding:2px}
.factory-backpack .storage-cell{width:36px;height:36px;min-height:36px;padding:2px}
.factory-backpack .storage-cell .item-icon{width:28px;height:28px}
.factory-backpack p{font-size:10px;margin:5px 0 0}
.factory-container-results{display:grid;gap:6px;max-height:50vh;overflow:auto;margin-top:12px}
.factory-container-results button{display:flex;align-items:center;gap:8px;font-size:13px}
.factory-container-results .item-icon{width:32px;height:32px}
.exchange-over{outline:2px solid #bcdf80!important;outline-offset:1px}
.exchange-ghost{pointer-events:none!important;z-index:10000;width:40px;height:40px;padding:3px}
.exchange-ghost .item-icon{width:32px;height:32px;margin:0}
[data-machine-drag],[data-quick-bucket]{touch-action:none}
@media(max-width:650px){
 .factory-workspace>.board-scroll{height:72dvh;min-height:460px}
 .factory-workspace .board-tools-dock{left:8px;transform:none;width:156px;top:45px}
 .factory-workspace .grid-controls{left:8px;right:8px;justify-content:flex-end}
 .factory-workspace .board-minimap{display:none}
 .factory-side-tools{top:90px}
 .factory-backpack{top:132px;right:58px;max-width:calc(100% - 66px);padding:5px}
 .factory-backpack .storage-cell-grid{max-height:180px}
 .factory-bottom-dock .transport-current b{font-size:9px}
 .factory-bottom-dock .transport-parameters{font-size:8px}
 .factory-bottom-dock .transport-current{gap:2px}
 .factory-bottom-dock .transport-current .item-icon{width:20px;height:20px}
}


.save-manager{display:grid;gap:14px;min-width:0}
.save-manager>.muted,.save-auto p{font-size:12px}
.save-toolbar,.save-cloud-heading,.save-auto,.save-danger{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
.save-toolbar input{flex:1;min-width:150px;max-width:350px}
.save-list{display:grid;gap:8px;max-height:420px;overflow:auto}
.save-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--line);background:#121b16}
.save-row strong{display:block;overflow-wrap:anywhere}.save-row small{display:block;color:var(--muted);font-size:11px}
.save-row-actions{display:flex;flex-wrap:wrap;gap:5px;flex-shrink:0}
.save-manager button{min-height:32px;padding:5px 9px;font-size:12px}
.save-auto{border-top:1px solid var(--line);padding-top:14px}.save-auto>div{flex:1;min-width:240px}
.save-repair-report{max-height:45vh;overflow:auto;margin:14px 0;font-size:12px;overflow-wrap:anywhere}
.save-repair-report li{margin:6px 0}.save-danger{border-top:1px solid var(--line);padding-top:12px;font-size:12px}
#save-manager-status{font-size:12px;color:var(--gold);overflow-wrap:anywhere}
@media(max-width:650px){.save-row{align-items:flex-start;flex-direction:column}.save-row-actions{flex-shrink:1}.save-list{max-height:480px}}


.factory-recipe-row{display:flex;align-items:center;gap:12px;min-width:0;width:100%;padding:8px 0}
.factory-recipe-side{display:flex;flex-wrap:wrap;gap:4px;flex:1;min-width:0}
.factory-recipe-item{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;min-height:38px;padding:3px;background:#172126;border:1px solid #48514b;border-radius:0;flex:none}
.factory-recipe-item .item-icon{width:30px;height:30px;margin:0}.factory-recipe-item b{position:absolute;right:1px;bottom:0;font-size:11px;line-height:13px;color:white;text-shadow:1px 1px #000,-1px -1px #000;pointer-events:none}
.factory-recipe-arrow{display:flex;align-items:center;flex-direction:column;flex:none;font-size:24px;color:var(--gold,#d1b579)}.factory-recipe-arrow small{font-size:11px;line-height:14px}
.factory-recipe-picker{display:grid;gap:6px;max-height:48vh;overflow:auto;margin:12px 0}.factory-recipe-choice{width:100%;padding:4px 10px;text-align:left}.factory-recipe-choice.selected{border-color:#d5b36f;background:#373321}
.machine-order-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.machine-order-slot{padding:9px;border:1px solid #48514b;min-height:74px}.machine-order-slot>button{font-size:11px;padding:4px 8px;margin:4px 5px 0 0;min-height:28px}.machine-order-slot>small{display:block}
@media(max-width:620px){.machine-order-slots{grid-template-columns:1fr}.factory-recipe-row{gap:6px}.factory-recipe-item{width:34px;height:34px;min-height:34px}.factory-recipe-item .item-icon{width:27px;height:27px}}
