:root{color-scheme:dark;--bg:#111e24;--panel:rgba(17,29,35,.94);--text:#edf0e9;--muted:#92a5a8;--line:#ffffff15;--accent:#f4b376;--mint:#89c6b6}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#283f37;color:var(--text);font:13px/1.5 'Segoe UI',system-ui,sans-serif}button,input,select{font:inherit}button{color:inherit;background:transparent;border:1px solid transparent;cursor:pointer;transition:background .16s,border .16s}button:hover{background:#ffffff0c;border-color:#ffffff15}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.4;cursor:default}canvas#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none}header{height:80px;position:fixed;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:linear-gradient(#101c22fa,#101c22ee);border-bottom:1px solid var(--line);z-index:3;gap:20px}.brand{display:flex;align-items:center;gap:13px}.brandicon{font-size:33px;font-weight:900;line-height:1;color:var(--accent);position:relative;letter-spacing:-9px;width:43px;transform:skewY(-8deg)}.brandicon span{color:#91c2b7}.brand b{font-size:16px;letter-spacing:2.1px}.brand small{display:block;color:#92a5a8;font-size:9px;letter-spacing:3.8px;margin-top:3px}.brand i{font-style:normal;color:var(--accent)}.worldtag{font-size:10px;letter-spacing:1.9px;display:flex;align-items:center;gap:12px;color:#b2c1c0}.worldtag strong{font-size:23px;color:var(--accent)}.separator{color:#45616a;margin:0 6px}.live{display:inline-block;width:6px;height:6px;background:var(--mint);border-radius:50%;box-shadow:0 0 10px #8cc4ac33}.topactions{display:flex;gap:12px}.topactions button{padding:9px 12px;border:1px solid #ffffff1b;border-radius:6px}.glass{background:var(--panel);border:1px solid #d2ece51a;box-shadow:0 12px 40px #05111433;border-radius:10px;backdrop-filter:blur(12px)}#tools{position:fixed;top:105px;left:22px;width:64px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px;z-index:3;display:flex;flex-direction:column;gap:5px}#tools button{position:relative;height:46px;border-radius:6px;display:flex;align-items:center;justify-content:center}#tools button>span{font-size:26px;font-family:system-ui;line-height:1}#tools button b{position:absolute;left:65px;background:#101d25;padding:8px 12px;border:1px solid var(--line);border-radius:5px;white-space:nowrap;display:none;font-size:12px;font-weight:500}#tools button:hover b{display:block}#tools button kbd{position:absolute;right:3px;bottom:1px;font-size:9px;color:#8c9fa3}#tools .active{background:#f4b37620;color:var(--accent);border-color:#f4b37644}.navline{height:1px;background:var(--line);margin:5px}.eyebrow{font-size:9px;letter-spacing:2px;color:#99afb2;display:flex;align-items:center;justify-content:space-between}.headline{font-size:21px;letter-spacing:-.6px;font-weight:550;margin:12px 0 20px}#overview{position:fixed;top:105px;left:108px;width:287px;padding:21px 22px;z-index:2}.stats{display:flex;gap:24px}.stats strong{font-size:23px;display:block;font-weight:500;letter-spacing:-1px}.stats small{font-size:10px;display:block;color:var(--muted)}.textbtn{color:var(--accent);padding:15px 0 0;margin-top:15px;border-top:1px solid var(--line);width:100%;text-align:left;font-size:11px}.textbtn span{float:right}#panel{position:fixed;right:22px;top:105px;width:330px;padding:23px;max-height:calc(100dvh - 180px);overflow:auto;z-index:4}.hidden{display:none!important}.paneltop{display:flex;align-items:center;justify-content:space-between}.close{font-size:20px;color:var(--muted);padding:0 6px}.paneltitle{font-size:22px;font-weight:550;margin:12px 0 3px;letter-spacing:-.5px}.sub{font-size:12px;color:var(--muted);margin:4px 0 18px}.badge{font-size:9px;letter-spacing:1px;color:var(--mint);background:#8bc4b514;padding:4px 7px;border:1px solid #8bc4b52a;border-radius:3px;display:inline-block}.sectionlabel{font-size:10px;color:#a4b9ba;letter-spacing:1.6px;margin:24px 0 12px}.inventory{display:flex;flex-direction:column;gap:12px}.stockrow{display:grid;grid-template-columns:25px 1fr auto;align-items:center;gap:8px}.goodicon{font-size:9px;font-weight:bold;border:1px solid currentColor;border-radius:4px;padding:4px 0;text-align:center}.stockrow strong{font-size:12px;font-weight:500}.stockbar{height:3px;background:#ffffff08;grid-column:2/4;border-radius:3px}.stockbar i{display:block;height:100%;border-radius:3px}.row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid #ffffff08}.row span{color:var(--muted)}.btn{border:1px solid #ffffff20;border-radius:5px;padding:10px 14px;text-align:center}.primary{background:var(--accent);color:#18272d;border:1px solid var(--accent);font-weight:650}.primary:hover{background:#ffd0a0;border-color:#ffd0a0}.wide{width:100%;margin-top:12px}.danger{color:#e79b94}.buttonrow{display:flex;gap:8px;margin-top:12px}.buttonrow .btn{flex:1}.listitem{display:block;text-align:left;width:100%;padding:12px 9px;border-bottom:1px solid var(--line);border-radius:5px}.listitem b{display:block;font-weight:500}.listitem small{color:var(--muted);font-size:10px}.listitem .dot{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%}.catalog{display:grid;grid-template-columns:1fr 1fr;gap:8px}.catalog button{border:1px solid var(--line);border-radius:6px;text-align:left;padding:12px 10px}.catalog button b{display:block;font-size:12px;font-weight:500}.catalog button small{font-size:10px;color:var(--muted)}.catalog .chosen{border-color:var(--accent);background:#f4b37615}label{display:block;font-size:11px;color:#a4b9ba;margin:15px 0 6px}input:not([type=checkbox]),select{display:block;width:100%;border:1px solid #ffffff20;border-radius:5px;background:#0e1b20;color:var(--text);padding:10px;min-width:0}input[type=checkbox]{accent-color:var(--accent)}.stop{padding:10px 12px;background:#ffffff04;border:1px solid var(--line);border-radius:5px;margin:8px 0}.stophead{display:flex;justify-content:space-between;align-items:center;color:#ddd}.stophead strong{font-size:11px}.stop .fields{display:grid;grid-template-columns:1fr 1fr;gap:5px}.stop select{font-size:10px;padding:6px}.stop label{font-size:10px;margin:7px 0 4px}.stop .smallcheck{display:flex;align-items:center;gap:5px}.empty{padding:25px 10px;text-align:center;color:var(--muted)}#hint{position:fixed;bottom:72px;left:50%;transform:translateX(-50%);background:#132128ed;border:1px solid #bdd8d524;border-radius:7px;padding:12px 16px;display:flex;align-items:center;gap:13px;max-width:650px;width:max-content;font-size:11px;z-index:2;box-shadow:0 8px 20px #0002}#hintIcon{font-size:19px;color:var(--accent)}kbd{font:9px monospace;color:#9aadb0;border:1px solid #ffffff24;border-radius:3px;padding:1px 4px}#tools kbd{border:0;padding:0}#toast{position:fixed;top:94px;left:50%;transform:translate(-50%,-10px);background:#1c3134;border:1px solid #7eaa9955;color:#ecf4ec;padding:12px 21px;border-radius:7px;opacity:0;pointer-events:none;transition:.2s;z-index:20;max-width:80vw}#toast.show{opacity:1;transform:translate(-50%,0)}#toast.error{border-color:#db8e7955;background:#3c2928}#mapcontrols{position:fixed;bottom:265px;right:22px;display:flex;align-items:center;gap:5px;padding:5px;z-index:2}#mapcontrols button{width:30px;height:31px;font-size:21px;border-radius:4px}#mapcontrols span{font-size:10px;color:var(--muted);min-width:39px;text-align:center}#mapcontrols>div{height:18px;width:1px;background:var(--line);margin:0 4px}#minimapBox{position:fixed;bottom:70px;right:22px;padding:13px;width:266px;z-index:2}#minimapBox .eyebrow{margin-bottom:7px;letter-spacing:1.3px}#coords{font-size:8px;color:#708d91;letter-spacing:.3px}#minimap{width:240px;height:156px;display:block;cursor:crosshair;border-radius:3px}footer{height:49px;position:fixed;bottom:0;left:0;right:0;background:#101c22f5;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 25px;z-index:4;font-size:10px;letter-spacing:1px;color:#9bafb0}.simulation,.status{display:flex;align-items:center;gap:15px}.simulation{gap:6px}.simulation button{padding:4px 10px;border-radius:4px;font-size:11px}.simulation .active{background:#ffffff10;color:var(--accent)}#pause{font-size:15px;color:var(--accent);margin-right:7px}.footerline{height:14px;width:1px;background:var(--line);margin:0 8px}.status b{color:var(--accent);margin-left:6px}dialog{color:var(--text);background:#142329;border:1px solid #6b8b8b55;border-radius:12px;width:580px;max-width:calc(100vw - 30px);max-height:85dvh;padding:30px;box-shadow:0 30px 140px #0008}dialog::backdrop{background:#071217a6;backdrop-filter:blur(5px)}dialog h1{font-size:32px;line-height:1.15;letter-spacing:-1px;font-weight:550;margin:20px 0 10px}dialog h1 em{font-style:normal;color:var(--accent)}dialog p{color:#a9bdbf;font-size:13px}dialog .steps{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin:25px 0}.steps article{padding:15px;border:1px solid var(--line);border-radius:6px}.steps article b{display:block;font-size:12px;margin-bottom:7px}.steps article small{color:var(--muted);font-size:11px}.modalactions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.modalactions .btn{flex:1}.routepreview{padding:12px;border-left:2px solid var(--accent);font-size:11px;color:var(--muted);margin:18px 0}.legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px;font-size:10px;color:var(--muted)}.legend i{width:7px;height:7px;border-radius:2px;display:inline-block;margin-right:4px}.muted{color:var(--muted)}.notice{font-size:11px;color:var(--muted);border-left:2px solid #577977;padding-left:10px;margin:16px 0}.progressline{height:5px;background:#ffffff10;border-radius:3px;overflow:hidden;margin:8px 0}.progressline i{display:block;background:var(--accent);height:100%}a{color:var(--accent)}@media(max-width:1100px){.worldtag{display:none}#overview{width:250px}.stats{gap:17px}#hint{max-width:calc(100vw - 430px);font-size:10px}#hint kbd{display:none}#panel{width:300px}}@media(max-width:720px){header{height:65px;padding:0 15px}.brand b{font-size:12px}.brand small{font-size:8px;letter-spacing:2px}.brandicon{font-size:29px;width:34px}.topactions{gap:4px}.topactions span{display:none}#tools{left:10px;top:80px;width:51px;padding:5px}#tools button{height:38px}#tools button>span{font-size:23px}#overview{top:80px;left:73px;width:220px;padding:14px}.headline{font-size:17px;margin:7px 0 10px}.stats strong{font-size:20px}.textbtn{padding-top:9px;margin-top:9px}#minimapBox{width:160px;right:12px;bottom:61px;padding:8px}#minimap{width:142px;height:92px}#coords{display:none}#mapcontrols{right:12px;bottom:188px}#hint{left:12px;bottom:61px;transform:none;max-width:calc(100vw - 190px);font-size:10px;padding:9px;gap:7px}#hintIcon{display:none}footer{padding:0 10px;height:43px}.status{gap:3px;font-size:8px}.status .footerline,.status #saveState,.status>.live,#scale{display:none}.simulation{gap:1px}#clock{margin-left:3px;font-size:9px}#panel{top:80px;right:10px;width:min(310px,calc(100vw - 80px));max-height:calc(100dvh - 145px);padding:17px;z-index:5}.steps article{padding:10px}dialog{padding:23px}dialog h1{font-size:27px}}
.itemasset{width:25px;height:25px;object-fit:contain}.assetbanner{display:flex;align-items:center;gap:14px;padding:12px 0 18px;border-bottom:1px solid var(--line)}.assetbanner>img{width:65px;height:65px;object-fit:contain;image-rendering:auto}.assetbanner small{display:block;color:#c5a18c;font-size:10px;margin-top:7px}.assetbanner>div{flex:1}.raterow{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line)}.raterow>span{font-size:11px}.raterow small{display:block;font-size:8px;letter-spacing:1px;color:var(--muted);margin-top:3px}.raterow>b{text-align:right;font-size:17px;font-weight:500}.raterow.output{color:#b9d5b6;padding-top:15px}.factoryitem{display:flex;gap:10px;align-items:center}.factoryitem img{width:35px;height:35px}.factoryitem b{font-size:11px}.factoryitem small{font-size:9px}.inlineinput{display:flex;gap:6px}.inlineinput input,.inlineinput select{flex:1}.inlineinput button{padding:7px 12px}.welcomeassets{display:flex;align-items:center;gap:0;margin:22px 0 0;height:70px}.welcomeassets img{width:90px;height:90px;object-fit:contain}.welcomeassets img:first-child{width:120px;height:110px}.fineprint{font-size:10px!important;line-height:1.6;color:#7e999d!important;margin-top:20px}.menugrid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:25px}

.recipeDetails{margin-top:20px;border:1px solid var(--line);border-radius:6px;padding:12px}.recipeDetails summary{cursor:pointer;color:#c8d6d1;font-size:11px}.recipeLine{padding:10px 0;border-bottom:1px solid var(--line)}.recipeLine b,.recipeLine small,.recipeLine span{display:block}.recipeLine b{font-size:11px;font-weight:500}.recipeLine small{font-size:9px;color:var(--accent);margin:4px 0}.recipeLine span{font-size:9px;color:var(--muted)}.planitem{display:flex;align-items:start;gap:9px}.planitem b{font-size:11px;line-height:1.5}.planitem small{display:block;font-size:10px;line-height:1.6;margin-top:3px}.planstatus{flex:0 0 20px;color:#dfae76;border:1px solid #dfae7644;text-align:center;border-radius:3px;font-size:12px}.planstatus.done{color:#91c9b5;border-color:#91c9b544}#panel .badge{max-width:100%}#tools{gap:2px}#tools button{height:42px}@media(max-height:800px){#tools{top:95px;padding:4px}#tools button{height:34px}#tools .navline{margin:3px}}

#panel{width:420px}
.flowgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:12px}
.flowcolumn{--flow:#efb17d;min-width:0}.flowcolumn.outgoing{--flow:#94d4b7}
.flowhead{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-top:2px solid var(--flow);color:var(--flow)}
.flowhead>span{font-size:9px;font-weight:700;letter-spacing:1px}.flowhead>small{font-size:10px;color:var(--muted)}
.flowcard{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;padding:11px 9px;margin:5px 0;background:#ffffff05;border:1px solid #ffffff0d;border-radius:6px}
.flowcard .itemasset{width:30px;height:30px;align-self:center}.flowcard>div>span{display:block;font-size:10px;line-height:1.35;min-height:26px;overflow-wrap:anywhere}
.flowcard strong{display:block;color:var(--flow);font-size:20px;font-weight:550;letter-spacing:-.5px}.flowcard strong small{font-size:10px;font-weight:400;color:var(--muted);letter-spacing:0}
.flowcard .flowfoot{grid-column:1/-1;display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line);padding-top:6px;color:var(--muted);font-size:9px}.flowfoot .shortage{color:#efb17d}
.flowempty{font-size:11px;line-height:1.6;color:var(--muted);padding:7px 5px}
.filterhead{display:flex;justify-content:space-between;align-items:center;margin-top:9px}.filterhead button{font-size:10px;color:var(--accent);padding:3px 5px}
.goodschecks{max-height:205px;overflow:auto;border:1px solid var(--line);border-radius:5px;background:#0e1b2070;padding:4px 7px}
.goodschecks label{display:flex;align-items:center;gap:7px;padding:5px 0;margin:0;cursor:pointer;color:#d8e1dc;font-size:11px}.goodschecks input{flex:0 0 auto}.goodschecks .itemasset{width:23px;height:23px}.goodschecks span{line-height:1.3}
.setuphero{display:flex;align-items:center;flex-direction:column;padding:20px 0;background:radial-gradient(ellipse,#f4b37616,transparent 70%)}.setuphero img{width:115px;height:115px;object-fit:contain}.setuphero strong{font-size:16px}.setuphero span{color:var(--muted);font-size:11px;margin-top:5px}
.setupsteps{display:flex;flex-direction:column;gap:12px;padding:15px;background:#ffffff04;border:1px solid var(--line);border-radius:6px;margin:18px 0}.setupsteps b{color:var(--accent)}.setupsteps span{color:var(--muted);font-size:12px}
@media(max-width:1100px){#panel{width:380px}#hint{max-width:calc(100vw - 480px)}}
@media(max-width:720px){#panel{width:min(370px,calc(100vw - 80px))}.flowgrid{gap:7px}.flowcard{padding:8px 6px;grid-template-columns:23px minmax(0,1fr);gap:5px}.flowcard .itemasset{width:23px;height:23px}.flowcard strong{font-size:17px}.flowhead>span{font-size:8px;letter-spacing:.2px}#hint{max-width:calc(100vw - 190px)}}

.railsummary{display:flex;flex-direction:column;gap:6px;padding:15px 12px;background:#8dc6ad10;border:1px solid #8dc6ad25;border-radius:6px;margin:18px 0;color:#b9dccc}.railsummary strong{font-size:20px;font-weight:550}.railsummary span{font-size:11px}.railwarning{color:#edb096}.terrainlegend{display:grid;grid-template-columns:1fr 1fr;gap:6px;color:var(--muted);font-size:10px;margin:12px 0}.terrainlegend span:nth-child(1){color:#9fceab}.terrainlegend span:nth-child(2){color:#edb096}.terrainlegend span:nth-child(3){color:#87c6e6}.terrainlegend span:nth-child(4){color:#e29c98}#panel>.smallcheck{display:flex;gap:7px;align-items:center}
