:root{color-scheme:dark;--bg:#111619;--panel:#1b2227;--line:#333e45;--text:#edf0ef;--muted:#a1aeb5;--gold:#efb65b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,"Tahoma",sans-serif;height:100vh;display:flex;flex-direction:column}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:5px;padding:9px 12px;background:#252e34;color:var(--text)}button:hover{background:#34414a;border-color:#78858e}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}input:not([type=checkbox]),select{width:100%;background:#11181c;color:var(--text);border:1px solid var(--line);border-radius:4px;padding:9px}header{min-height:76px;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--line);gap:16px}.brand{display:flex;align-items:center;gap:12px}.brand strong{font-size:19px;letter-spacing:1.6px}.brand em{color:var(--gold);font-style:normal}.brand small{display:block;font-size:10px;letter-spacing:1.6px;color:var(--muted)}.mark{font-size:25px;display:grid;place-items:center;border:2px solid var(--gold);color:var(--gold);width:38px;height:42px;transform:skew(-8deg)}.file-actions{display:flex;gap:8px}.accent{background:var(--gold);color:#1f211f;border-color:var(--gold);font-weight:700}.accent:hover{background:#ffcc7e}.project{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;min-height:92px;border-bottom:1px solid var(--line)}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--gold)}#title{display:block;font-size:23px;font-weight:650;padding:0;background:transparent;border:0;max-width:460px}#saveState{font-size:12px;color:var(--muted)}main{display:grid;grid-template-columns:210px minmax(0,1fr) 264px;flex:1;min-height:0}aside{padding:20px 16px;background:var(--panel);overflow:auto}.left{border-right:1px solid var(--line)}.right{border-left:1px solid var(--line);display:flex;flex-direction:column}h2{font-size:14px;margin:0 0 16px}hr{border:0;border-top:1px solid var(--line);margin:20px 0}.tool{width:100%;display:flex;align-items:center;gap:12px;background:transparent;border-color:transparent;text-align:left;margin:4px 0}.tool.active{background:#efb65b14;color:var(--gold);border-color:#efb65b55}.tool span{flex:1}kbd{font:11px monospace;opacity:.65;border:1px solid var(--line);padding:1px 4px}label{display:block;color:var(--muted);margin:12px 0;font-size:13px}label input,label select{margin-top:6px;color:var(--text)}.wide{width:100%;margin:4px 0}.check{display:flex;gap:8px;align-items:center}.check input{accent-color:var(--gold);margin:0}.history{display:flex;gap:4px;margin-top:10px}.history button{font-size:12px;padding:8px 5px;flex:1}.help{font-size:12px;color:var(--muted);margin-top:24px}.help p{line-height:1.9}.help b{color:#d1d9dd}.panel-heading{display:flex;justify-content:space-between;gap:4px}.panel-heading span{color:var(--gold);font-size:11px}.muted{color:var(--muted)}.footnote{margin-top:auto;padding-top:36px;font-size:11px;color:#9aa7af;line-height:1.8}.danger{color:#ffb7a7;border-color:#795347;background:#3a2827}.preview{height:110px;background:#10171b;border:1px dashed var(--line);display:grid;place-items:center;margin-bottom:12px;border-radius:6px}.preview img{max-width:95%;max-height:100px;object-fit:contain}.empty-icon{font-size:25px;color:#71818d}#viewport{position:relative;overflow:hidden;background-color:#12191e;touch-action:none;background-image:radial-gradient(#41505b 1px,transparent 1px);background-size:24px 24px}#viewport.panning{cursor:grabbing}#viewport.connecting{cursor:crosshair}#world{position:absolute;transform-origin:0 0;width:0;height:0}#columns,#nodes{position:absolute;inset:0}#edges{position:absolute;overflow:visible;width:1px;height:1px}.column{position:absolute;top:0;width:216px;height:1100px;border-left:1px solid #ffffff07;border-right:1px solid #ffffff07;background:#ffffff03;pointer-events:none}.column button{pointer-events:auto;width:100%;height:70px;background:#1d272eee;border:0;border-top:2px solid #5a6a75;border-radius:0;text-align:left;display:flex;align-items:center;gap:14px;padding:12px 18px}.column.selected button{border-top-color:var(--gold);background:#383125}.tier-num{font-size:26px;color:var(--gold);font-family:Georgia,serif;min-width:34px}.col-name{font-size:13px;color:#bdc8ce;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node{position:absolute;width:168px;height:120px;border:1px solid #56616a;border-radius:5px;background:linear-gradient(135deg,#303d46,#202a31);box-shadow:0 8px 20px #0004;cursor:grab;touch-action:none;padding:0;text-align:left;overflow:hidden}.node:hover{border-color:#afbbc2;background:linear-gradient(135deg,#354651,#25343c)}.node.selected{border:2px solid var(--gold);box-shadow:0 0 0 3px #efb65b24}.node.source{border-color:#8ccbbb;box-shadow:0 0 0 3px #8ccbbb33}.node-top{display:flex;justify-content:space-between;padding:7px 10px;font-size:11px;color:var(--gold)}.node-image{height:50px;display:flex;justify-content:center;align-items:center}.node img{width:120px;height:48px;object-fit:contain;pointer-events:none}.node-name{padding:5px 10px 9px;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node .placeholder{font-size:12px;letter-spacing:2px;color:#9eafb9}.wire{fill:none;stroke:#899791;stroke-width:2;pointer-events:none}.wire.selected{stroke:var(--gold);stroke-width:3}.wire-hit{fill:none;stroke:transparent;stroke-width:18;pointer-events:stroke;cursor:pointer}#hint{position:absolute;top:14px;left:50%;transform:translateX(-50%);max-width:90%;background:#172027e8;border:1px solid var(--line);border-radius:30px;padding:7px 16px;font-size:12px;color:#c0cbd1;text-align:center;pointer-events:none}.zoom{position:absolute;bottom:20px;right:20px;display:flex;align-items:center;gap:12px;background:#1b252c;border:1px solid var(--line);padding:5px;border-radius:6px}.zoom button{border:0;background:transparent;padding:4px 8px}.zoom span{min-width:42px;text-align:center;font-size:12px}footer{display:flex;justify-content:space-between;padding:8px 20px;background:#172026;border-top:1px solid var(--line);font-size:11px;color:var(--muted);letter-spacing:.4px}.dot{color:var(--gold);margin-left:8px}#toast{position:fixed;bottom:64px;left:50%;transform:translateX(-50%);background:#efb65b;color:#161b1e;padding:12px 22px;border-radius:6px;z-index:20;display:none;max-width:90%}.coords{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hint-small{font-size:12px;color:var(--muted)}@media(max-width:1050px){main{grid-template-columns:175px minmax(0,1fr) 225px}header{padding:12px}.brand small{display:none}.brand strong{font-size:15px}.file-actions button{font-size:12px;padding:8px}.project{padding:12px 16px}aside{padding:14px 10px}}@media(max-width:740px){body{height:auto;min-height:100vh}header{flex-wrap:wrap}.file-actions{flex-wrap:wrap}.project{gap:12px}#saveState{max-width:120px}main{grid-template-columns:1fr;display:flex;flex-direction:column}.left{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border-bottom:1px solid var(--line)}.left h2,.left hr,.help{display:none}.left .tool{width:auto;margin:0}.tool kbd{display:none}.left .wide{width:auto}.left label{margin:0}.left label select{width:75px;margin-left:6px}.left .history{margin:0}.left .check{margin:6px}.right{min-height:220px;border-top:1px solid var(--line)}#viewport{height:62vh;min-height:360px;flex:none}.footnote{margin-top:14px;padding-top:0}#title{font-size:20px}.panel-heading{justify-content:flex-start;gap:15px}}

/* Premium vehicles retain their tier, type and connections. */
.node.premium{border-color:#c59c4c;background:linear-gradient(135deg,#49402b,#29291f)}
.node.premium:hover{border-color:#ffe09a;background:linear-gradient(135deg,#594b2d,#353124)}
.node.premium.selected{border-color:#fff0be;box-shadow:0 0 0 3px #efb65b60}
.node.premium.source{border-color:#8ccbbb;box-shadow:0 0 0 3px #8ccbbb33}
.premium-badge{color:#ffe09a;font-size:11px;font-weight:700;letter-spacing:1px;height:17px;line-height:17px;padding-left:10px}
.node.premium .node-image{height:33px}
.node.premium .node-image img{height:32px}
.node.premium .node-name{color:#ffe5a4}
