.craft-map{margin:22px 0;padding:20px!important}.map-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.map-header h2{font-size:23px;margin:0}.map-header .eyebrow{margin:0 0 4px;font-size:10px}.map-header>div:first-child{margin-right:auto}.map-header label{display:flex;gap:8px;align-items:center;font-size:12px}.map-header input{width:76px!important;margin:0!important}.craft-map button{background:var(--surface,#edf3ee);color:inherit;border:1px solid var(--line);border-radius:7px;padding:8px 11px;min-height:34px}.craft-map button.primary{background:var(--green);color:white}.map-intro{font-size:12px;margin:12px 0}.map-workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.map-viewport{height:640px;overflow:auto;background-color:#eff4ef;background-image:radial-gradient(#becdc3 1px,transparent 1px);background-size:20px 20px;touch-action:none;cursor:grab;position:relative;overscroll-behavior:contain}.map-stage{position:relative}.map-canvas{position:absolute;transform-origin:0 0}.map-canvas svg{position:absolute;top:0;left:0;overflow:visible;pointer-events:none;color:#6baf8e}.map-canvas svg>path{fill:none;stroke:currentColor;stroke-width:2;opacity:.65}.map-canvas svg>path.pending{stroke:#c99740;stroke-dasharray:6 5}.map-node{position:absolute;width:206px;min-height:100px;border:1px solid #8baf9d;border-radius:10px;background:#fff;box-shadow:0 3px 12px #071d1118;color:inherit;padding:0 10px 10px}.map-node-handle{padding:9px 0 3px;cursor:grab;user-select:none}.map-node-handle small{font-size:8px;letter-spacing:.8px;opacity:.7}.map-node p{font-size:11px;margin:6px 0 0;color:var(--muted)}.map-node.area,.map-node.inventory{background:#e6f0f6;border:1px solid #64a4c7}.map-node.goal{border:2px solid #82b555}.map-node.phantom{border:1.5px dashed #cf9a42}.map-node.selected{box-shadow:0 0 0 3px #bad88766}.map-node-label{display:flex;align-items:center;gap:6px;border:0!important;padding:0!important;text-align:left;background:transparent!important;width:100%;font-size:12px;line-height:1.2;min-height:30px!important}.map-node-label>span:not(.mmbadge){min-width:0;overflow-wrap:anywhere}.map-node-label>.mmbadge{margin-left:auto;flex-shrink:0;border:1px solid #b99a48;background:#b99a481a;border-radius:3px;padding:3px;font-size:8px;display:flex;flex-direction:column;gap:3px;color:#a28132}.map-node-label>.gmbadge{border-color:#729cb4;color:#729cb4}.map-node-label .tower-level{font-size:8px}.map-node .map-port{position:absolute;right:-12px;top:47px;width:24px;height:24px;min-height:24px;border-radius:50%;padding:0;background:#c6ef91!important;color:#19382c!important;touch-action:none}.map-source-icon{font-size:22px}.map-inspector{border-left:1px solid var(--line);padding:18px;max-height:640px;overflow:auto;background:#fafcf9;font-size:13px}.map-inspector h3{margin:0 0 12px}.map-inspector p{font-size:12px}.map-inspector>button{width:100%;margin-bottom:8px}.map-inspector input{width:100%}.map-tower-note{background:#b99a4815;border-left:2px solid #b99a48;padding:8px}.map-shortage{color:#b87e22;font-weight:700}.map-candidate,.map-output{width:100%;display:flex;flex-direction:column;align-items:flex-start;text-align:left;margin:8px 0;gap:6px;padding:10px!important}.map-candidate small{font-size:10px;opacity:.75}.map-output{flex-direction:row;justify-content:space-between;font-size:11px}.map-footer{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding-top:14px;font-size:12px}.map-footer>span:first-child{margin-right:auto}.map-preview{border-top:1px solid var(--line);margin-top:16px;padding-top:16px;font-size:13px}.map-preview-outputs{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}.map-preview-outputs>div{border:1px solid var(--line);padding:10px;border-radius:7px;display:flex;flex-direction:column;gap:5px;min-width:150px}.map-preview small{color:var(--muted)}
[data-theme=dark] .map-viewport{background-color:#11221c;background-image:radial-gradient(#294237 1px,transparent 1px)}[data-theme=dark] .map-node{background:#20362c;border-color:#527566}[data-theme=dark] .map-node.area,[data-theme=dark] .map-node.inventory{background:#1c3441;border-color:#4a839d}[data-theme=dark] .map-node.goal{border-color:#aad179}[data-theme=dark] .map-node.phantom{border-color:#c99c50}[data-theme=dark] .map-inspector{background:#1a2b22}[data-theme=dark] .craft-map button{background:#293e31;color:#e0eddf}[data-theme=dark] .craft-map button.primary{background:#c6ef91;color:#183b2c}[data-theme=dark] .map-node-label>.mmbadge{color:#dcc47e}[data-theme=dark] .map-node-label>.gmbadge{color:#a9ccdf}
@media(max-width:850px){.map-workspace{grid-template-columns:1fr}.map-inspector{border-left:0;border-top:1px solid var(--line);max-height:320px}.map-viewport{height:460px}.craft-map{padding:12px!important}.map-header button{font-size:11px;padding:6px 9px}.map-header>div:first-child{width:100%}.map-header input{width:64px!important}}

.craft-map.map-fullscreen{position:fixed;inset:10px;z-index:100;margin:0;overflow:auto;background:var(--surface,#f3f5f4)}.map-fullscreen .map-viewport,.map-fullscreen .map-inspector{height:calc(100vh - 200px);max-height:calc(100vh - 200px)}[data-theme=dark] .craft-map.map-fullscreen{background:#192620}

.map-lane{position:absolute;left:12px;right:12px;border:1px solid #69897945;border-radius:12px;background:#86ad9410;pointer-events:none}.map-lane>span{display:inline-block;margin:13px 18px;font-size:13px;letter-spacing:.03em;font-weight:650;color:var(--muted)}.map-lane:nth-child(even){background:#729ab00a}.map-canvas #mapLanes{position:absolute;inset:0}.map-lane:first-child{border-color:#819baf66}

.map-lane{right:auto;width:540px}.map-node.usage-fulfilled{background:#e4f3e9;border-color:#56a574}.map-node.usage-unused{background:#fff3cf;border-color:#c3a348}.map-node.usage-pending{background:#fff6df;border-color:#bf9544}
[data-theme=dark] .map-node.usage-fulfilled{background:#1d4030;border-color:#62aa7d}[data-theme=dark] .map-node.usage-unused{background:#453b20;border-color:#c3a44f}[data-theme=dark] .map-node.usage-pending{background:#352f22;border-color:#b89d60}
.map-legend{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 12px;font-size:11px;color:var(--muted)}.map-legend span::before{content:'';display:inline-block;width:10px;height:10px;border:1px solid #62aa7d;background:#62aa7d44;border-radius:3px;margin-right:6px;vertical-align:middle}.map-legend .legend-unused::before{border-color:#c3a44f;background:#c3a44f44}.map-legend .legend-pending::before{border-style:dashed;border-color:#b89d60;background:transparent}.map-fullscreen .map-viewport,.map-fullscreen .map-inspector{height:calc(100vh - 255px);max-height:calc(100vh - 255px)}

.map-viewport{touch-action:auto;cursor:default}.map-node,.map-node-handle{cursor:pointer}.map-node:focus-visible{outline:3px solid #a6cfe4;outline-offset:3px}.map-choice{border:1px solid var(--line);border-radius:9px;margin:10px 0;padding:8px}.map-choice .map-candidate{margin:0 0 6px;border:0;background:transparent!important}.craft-map .map-gap{color:#a32626;background:#ffe5e5;border:1px solid #ce6666;font-size:11px;text-align:left;margin:4px 0;padding:6px;min-height:28px}.map-node .map-gap{font-size:10px;margin-bottom:0}.map-supplied{color:#478a5c;margin:5px;font-size:11px}.map-draft-note{border-left:3px solid #b5c980;padding:9px;background:#adc58115}.map-footer{position:sticky;bottom:0;background:var(--surface,#f3f5f4);padding:12px;z-index:3;border-top:1px solid var(--line)}[data-theme=dark] .map-footer{background:#192620}[data-theme=dark] .craft-map .map-gap{background:#492829;color:#ffc3bb;border-color:#bd6863}[data-theme=dark] .map-supplied{color:#9accac}

.map-node.usage-void{background:#e4f3e9;border-color:#56a574;opacity:1}.map-add-actions{display:grid;gap:6px;margin:8px 0}.map-add-actions button{font-size:11px;text-align:left}.map-add-actions button:disabled{opacity:.45;cursor:not-allowed}

.map-add-option{padding:10px;border:1px solid var(--line);border-radius:8px;background:#81978108}.map-add-option>button{width:100%}.map-add-option .hint{font-size:11px;margin:8px 0}.map-add-option .map-gap{display:block;width:100%;box-sizing:border-box}.map-add-actions{gap:12px}.map-add-option .map-supplied{margin:8px 0}

.map-node-handle{display:flex;align-items:flex-start;flex-direction:column;gap:5px;padding-top:9px}.map-required-label{font-size:8px;letter-spacing:.055em;border:1px solid #84978b70;border-radius:4px;padding:3px 5px;color:var(--muted);line-height:1}.map-required-label.required{border-color:#70a586;color:#43815a;background:#70a58616}.map-choice-label{display:table;margin-top:8px;padding:3px 7px;border-radius:4px;border:1px solid #86a8c1;font-size:10px;line-height:1.2;color:#486f87;background:#86a8c11a}[data-theme=dark] .map-required-label.required{color:#a5d4b1}[data-theme=dark] .map-choice-label{color:#b0cfe1}.map-node .map-port{top:66px}

[data-theme=dark] .map-node.usage-void{background:#1d4030;border-color:#62aa7d;opacity:1}.map-node.usage-void .map-choice-label{opacity:1}.map-node.usage-void .map-required-label{color:inherit}

/* Compact, parallel choices for leftover crafts. */
.map-add-actions{gap:8px}.map-add-option{padding:8px}.map-add-option .hint,.map-add-option .map-supplied{margin:6px 0 0}.map-add-option .map-gap{margin-top:6px}.map-custom-label{display:block;font-size:12px;font-weight:600}.map-custom-controls{display:flex;gap:6px;margin-top:6px}.map-custom-controls input{width:0;min-width:0;flex:1}.map-custom-controls button{flex:none}.map-quantity-presets{display:flex;align-items:center;gap:5px;margin-top:6px}.map-quantity-presets button{padding:3px 8px;font-size:11px}.map-quantity-presets span,.map-custom-gaps small{font-size:11px;color:var(--muted)}

.map-display-settings{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0}.map-display-settings label{display:flex;align-items:center;gap:8px;font-size:12px}.map-display-settings>input{width:72px}.map-display-settings .hint{margin:0;flex:1;min-width:180px}.map-area-toggle{font-size:11px;padding:4px 7px;margin-top:5px;width:100%}

#mapReviewDialog{width:min(760px,calc(100vw - 32px));max-height:85dvh;margin:auto;padding:22px;border:1px solid var(--line);border-radius:14px;overflow:auto}#mapReviewDialog::backdrop{background:#06130dbb}#mapReviewDialog .map-preview{margin-top:12px;padding-top:12px}#mapReviewDialog .map-preview-outputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}#mapReviewStatus{font-size:13px;color:var(--muted)}

.map-inspector .map-applied-explore{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--line);border-radius:8px;margin:12px 0}.map-applied-explore>span{flex:1;min-width:0}.map-applied-explore strong{display:block;font-size:12px}.map-applied-explore small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.map-inspector .map-applied-explore input{width:38px!important;min-width:38px;flex:0 0 38px;margin:0}

/* Reserve toolbar/footer space; only the canvas and inspector scroll. */
.craft-map.map-fullscreen{display:flex;flex-direction:column;overflow:hidden;height:calc(100dvh - 20px)}
.map-fullscreen>.map-header,.map-fullscreen>.map-intro,.map-fullscreen>.map-display-settings,.map-fullscreen>.map-legend,.map-fullscreen>.map-footer{flex-shrink:0}
.map-fullscreen>.map-workspace{flex:1;min-height:0}
.map-fullscreen .map-viewport,.map-fullscreen .map-inspector{height:100%;max-height:100%;min-height:0}
.map-fullscreen>.map-footer{position:relative;background:inherit;margin:0;padding-top:12px}

.map-intro{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;color:var(--muted)}.map-help{position:relative;margin:0;padding:0;border:0}.map-help summary{font-size:12px;cursor:pointer}.map-help[open]{flex-basis:100%}.map-help p{max-width:850px;font-size:12px;margin:6px 0}.map-inspector>label{display:block;margin:12px 0 6px}.map-inspector>label input{margin-top:6px}.map-inspector>button{margin-top:4px}

.map-inventory-supply{border:1px solid var(--line);border-radius:8px;padding:10px;margin:12px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.map-inventory-supply label,.map-inventory-supply small{grid-column:1/-1}.map-inventory-supply small{color:var(--muted);font-size:11px}.map-inventory-supply input{min-width:0}

.map-display-settings #mapUnusedMode{width:auto;flex:none}.craft-map #mapUnusedMode button{border:0;background:transparent;color:var(--muted);padding:6px 12px;min-height:32px}.craft-map #mapUnusedMode button[aria-pressed="true"]{background:var(--green);color:white}[data-theme=dark] .craft-map #mapUnusedMode button[aria-pressed="true"]{background:#c6ef91;color:#19382c}#mapUnusedLabel{font-size:12px}

.map-choice{border:1px solid var(--line);border-radius:9px;margin:10px 0;overflow:hidden}
.map-choice-summary{position:relative;display:flex;flex-direction:column;gap:6px;padding:12px 32px 12px 12px;cursor:pointer;list-style:none}
.map-choice-summary::-webkit-details-marker{display:none}
.map-choice-summary::after{content:'›';position:absolute;right:12px;top:14px;font-size:20px;line-height:1}
.map-choice[open]>.map-choice-summary::after{transform:rotate(90deg)}
.map-choice-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-weight:600}
.map-choice-availability{font-size:11px;line-height:1.45;color:var(--muted)}
.map-choice-availability.ready{color:#438662}
.map-choice-summary>small{font-size:10px;color:var(--muted)}
.map-choice[open]>.map-choice-summary{border-bottom:1px solid var(--line)}
.map-choice>.map-add-actions{padding:10px}
html[data-theme=dark] .map-choice-availability.ready{color:#9cd4ad}

.map-node-modes{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:8px}.map-node-modes>p,.map-node-modes>label{width:100%;margin:0}.map-node-modes button[aria-pressed=true]{border-color:#75ad85;background:#75ad8522}.map-node-modes input{margin-top:5px}

.map-node-modes{display:block;padding:0;border:0}.map-node-modes>button{display:block;width:100%;margin:0 0 8px;text-align:center}.map-node-modes>label{display:block;margin:10px 0 8px}.map-node-modes>p{margin:8px 0}.map-node-modes select{width:100%;margin-top:5px}

.map-node .map-port{display:flex;align-items:center;justify-content:center;padding:0;line-height:1;text-indent:0;box-sizing:border-box}
.map-source-coverage{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:5px}
