/* The working place keeps a fixed command surface; plans occupy the central view. */
.domain-nav{height:40px;display:flex;align-items:center;gap:16px;padding:0 22px;border-bottom:1px solid #536656;background:#203033}
.domain-nav>span{font-size:9px;letter-spacing:1.6px;color:#9dad98;margin-right:8px}.domain-nav button{background:none;box-shadow:none;border:0;border-bottom:2px solid transparent;font-size:12px;padding:10px 4px}.domain-nav button.active{color:#e5cd98;border-bottom-color:#b6a371}
.domain-nav button span,.local-tabs button span{font-size:10px;background:#718754;color:#f5edcf;padding:2px 5px;margin-left:4px}
main{height:calc(100dvh - 212px);grid-template-columns:minmax(0,1fr) 392px}.world-section{position:relative}
.objective-banner{height:60px;padding:8px 22px}.objective-copy strong{font-size:17px}.objective-copy>span:last-child{font-size:10px}
.place-header{padding:18px 20px 10px;flex-shrink:0}.place-header h2{font:25px Georgia,serif;color:#344630;margin:6px 0}.place-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.place-header .eyebrow{color:#6a7451}.place-header .tools-tag{font-size:9px}.place-header .info-button{border:1px solid #9f916b;width:23px;height:23px;min-width:23px;padding:0;border-radius:50%;background:#e9dcba;color:#526247;font:italic bold 14px Georgia;box-shadow:none}
.local-tabs{display:flex;gap:25px;padding:0 20px;border-bottom:1px solid #ad9f78;flex-shrink:0}.local-tabs[hidden]{display:none}.local-tabs button{border:0;border-bottom:3px solid transparent;box-shadow:none;background:none;padding:10px 0;color:#77805a;font-size:12px}.local-tabs button.active{border-bottom-color:#6c844c;color:#354f34;font-weight:600}
.panel{padding:17px 20px;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.action-dock{flex-shrink:0;padding:14px 20px;border-top:1px solid #ab9f77;background:#d0c4a0;min-height:95px}.action-dock[hidden]{display:none}
.action-dock .primary,.action-dock .work-button{display:block;width:100%;padding:14px 10px;margin:0;background:#6d804b;border:2px solid #4b6338;box-shadow:inset 0 1px #a0af75,0 2px #a79b76;color:#fff0cc;font-size:13px;min-height:48px}
.action-dock .primary:hover:not(:disabled),.action-dock .work-button:hover:not(:disabled){background:#829652}.action-dock .work-button small{font-size:10px;color:#ece5ba;margin-top:5px}.action-dock>small{display:block;text-align:center;color:#6d7956;font-size:10px;margin-top:7px}
.pin-action{display:block;width:100%;background:transparent;border:0;box-shadow:none;color:#516742;font-size:11px;padding:8px;margin:4px 0 0}
.action-dock button:active{transform:none}
@keyframes button-impact{0%{filter:brightness(1.13);box-shadow:inset 0 0 0 2px #d9c38c}100%{filter:none;box-shadow:inset 0 0 0 0 transparent}}
.panel .live-state{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#74815d;margin-bottom:13px;gap:8px}.panel .live-state .status{margin:0;font-size:11px}.panel .live-state>span:last-child{white-space:nowrap}
.production-yield{display:flex;align-items:baseline;gap:8px;margin:0 0 14px;color:#687753}.production-yield strong{font-size:30px;font-weight:600;color:#3d5938;font-variant-numeric:tabular-nums}.production-yield span{font-size:12px}
.metric-row{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#687653;margin:9px 0}.metric-row b{color:#405b3b;font-weight:600}.panel .bar{height:6px;margin-bottom:13px}.panel .bar-label{font-size:11px}
.compact-recipe{padding:11px 12px;background:#e9dcb8;border:1px solid #b2a47e;color:#546541;font-size:12px;line-height:1.7}.compact-recipe b{color:#405b35}.compact-recipe small{display:block;color:#7a805b;font-size:10px;margin-top:5px}
.panel .worker-controls{border-top:1px solid #b1a47f;margin:17px 0 12px;padding-top:13px}.worker-controls>div>small{display:block;font-size:10px;color:#7e805c;margin-top:4px}.panel .stepper{gap:10px}.panel .stepper button{width:31px;height:31px}
.secondary-link{display:block;width:100%;text-align:left;margin:10px 0;font-size:11px}.panel .requirements{font-size:11px;line-height:1.7;color:#80714e;margin:10px 0}.blocking-cause{background:#e3c6a3;border:1px solid #b99c77;padding:11px;color:#875b3e;font-size:12px;line-height:1.6;margin:10px 0}
.next-improvement{display:flex!important;flex-direction:column;gap:5px;width:100%;text-align:left;margin-top:17px;padding:11px 12px!important;background:#d0c9a2!important;border-color:#a8a67c!important}.next-improvement small{font-size:8px;color:#73804e;letter-spacing:1px}.next-improvement b{font:16px Georgia;color:#455a36}.next-improvement span{font-size:10px;color:#6a794e}
.support{border-top:1px solid #b2a37e;margin-top:15px;padding-top:12px;font-size:11px;color:#5d7046}.support summary{cursor:pointer}.support p{font-size:11px;line-height:1.7;margin:10px 0}
.local-summary{display:flex;justify-content:space-between;font-size:10px;padding:10px;background:#c7c9a1;color:#5d7148}.local-tree{margin:18px 0;display:flex;flex-direction:column;gap:18px}.local-tier{display:flex;justify-content:center;gap:7px;position:relative}.local-tier+.local-tier:before{content:'';height:18px;width:2px;background:#91996a;position:absolute;left:50%;top:-18px}
.panel .local-node{flex:1;max-width:240px;padding:10px;font-size:11px;background:#e7dbb7;min-height:55px}.local-node small{display:block;font-size:9px;margin-top:5px}.panel .local-node.acquired{background:#c5d0a6;border-color:#849a68}.panel .local-node.locked{border-style:dashed;color:#857b60;background:#cdc1a0}.panel .local-node.selected{outline:2px solid #6b854a;outline-offset:1px}
.upgrade-detail{padding:14px;border:1px solid #aca077;background:#e4d9b5}.upgrade-detail h3{font-size:21px;margin:8px 0 13px}.upgrade-detail>.eyebrow{font-size:8px}.comparison{display:flex;justify-content:space-between;gap:6px;font-size:14px;color:#77805b;margin:16px 0}.comparison b{color:#3e6338}.upgrade-effect{font-size:12px;line-height:1.7;color:#62734c;margin:10px 0}.missing-materials{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px;color:#916443}.missing-materials .secondary-link{width:auto;padding:5px;font-size:10px}
main{position:relative}
.planning-view{position:absolute;inset:0;z-index:8;background:#24392f;color:#dfdfbe;padding:20px;display:flex;flex-direction:column;overflow:auto}.planning-view[hidden]{display:none}#skillTree{width:100%;max-width:none;max-height:none;padding:0;overflow:visible;background:none;box-shadow:none;color:inherit;display:flex;flex-direction:column;min-height:0;flex:1}#skillTree[hidden],#chainsView[hidden]{display:none}
.planning-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-shrink:0}.planning-heading h2{font-size:25px;color:#e3d6ad;margin:6px 0}.planning-heading button{font-size:11px}.planning-heading .eyebrow{color:#adb98f}
#treeBranchTabs{display:flex;gap:18px;border-bottom:1px solid #617258;margin:13px 0 18px;flex-shrink:0}#treeBranchTabs button{padding:9px 0;background:none;box-shadow:none;border:0;border-bottom:2px solid transparent;font-size:11px}#treeBranchTabs button.active{border-color:#b4c18b;color:#e4dab2}
.planning-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:20px;min-height:0;flex:1}#treeContent{overflow:auto;min-width:0;padding:4px}#treeDetail{overflow:auto;background:#d9cdab;padding:17px;color:#3f5537;border:1px solid #9eab7b}#treeDetail h3{font:22px Georgia;margin:12px 0}#treeDetail p{font-size:12px;line-height:1.8;color:#64734d;margin:12px 0}#treeDetail .eyebrow{color:#788452}#treeDetail .primary{width:100%;margin:12px 0;background:#6e824c}#treeDetail .pin-action{color:#546843}
#skillTree .skill-tier{gap:10px;margin-bottom:28px}#skillTree .skill-graph{min-width:280px}#skillTree .skill-node{cursor:pointer;max-width:200px;min-height:64px;padding:10px 6px;font-size:11px;box-shadow:2px 2px #172a23}#skillTree .skill-node b{font:13px Georgia;color:#344e35}#skillTree .skill-node small{display:block;font-size:9px;margin-top:7px;color:#6d7955}#skillTree .skill-node.selected{outline:2px solid #c4b77e;outline-offset:3px}
.chain-line{margin:20px 0;border-bottom:1px solid #596d52;padding-bottom:18px}.chain-line h3{font-size:20px;margin-bottom:12px;color:#e4d5ae}.chain-line>div{display:flex;align-items:center;gap:10px}.chain-line button{flex:1;text-align:left;font-size:12px;padding:13px}.chain-line b,.chain-line small{display:block;margin-top:7px;font-size:12px}.chain-line small{font-size:10px;color:#c2cfab}
@media(min-width:1650px){main{grid-template-columns:minmax(0,1fr) 410px}}
@media(max-width:1150px){main{grid-template-columns:minmax(0,1fr) 360px}.domain-nav{gap:13px;padding:0 15px}.domain-nav>span{display:none}.domain-nav button{font-size:11px}.panel{padding:13px 17px}.place-header{padding:14px 17px 9px}.place-header h2{font-size:22px}.action-dock{padding:12px 17px}.planning-view{padding:15px}.planning-layout{grid-template-columns:minmax(0,1fr) 210px;gap:12px}.planning-heading h2{font-size:22px}}
@media(min-width:801px) and (max-height:800px){.place-header{padding-top:10px;padding-bottom:6px}.place-header h2{font-size:22px;margin:5px 0}.local-tabs button{padding:8px 0}.panel{padding:11px 17px}.panel .live-state{margin-bottom:8px}.production-yield{margin-bottom:9px}.production-yield strong{font-size:27px}.panel .worker-controls{margin-top:12px;padding-top:10px}.compact-recipe{padding:8px 10px}.action-dock{min-height:84px;padding-top:10px;padding-bottom:10px}.action-dock .work-button{min-height:45px;padding:10px 7px}.next-improvement{margin-top:12px}#skillTree .skill-node{min-height:52px;padding:8px 5px}#skillTree .skill-tier{margin-bottom:23px}.planning-view{padding:13px}}
@media(max-width:800px){.domain-nav{height:auto;min-height:42px;overflow:auto;white-space:nowrap;gap:15px;padding:0 12px;flex-shrink:0}.domain-nav button{flex-shrink:0}main{height:auto;display:flex}.world-section{height:610px}.place-header{padding:17px 20px 10px}#sidebar{height:680px;min-height:0}.panel{padding:18px 20px;max-height:none}.action-dock{padding:13px 20px}.planning-view{padding:14px}.planning-layout{display:flex;flex-direction:column;overflow:auto;gap:15px}#treeContent{overflow:visible}#treeDetail{overflow:visible;flex-shrink:0}.planning-heading{align-items:flex-start}.planning-heading h2{font-size:20px}.planning-heading button{font-size:10px;padding:7px}.chain-line>div{flex-direction:column;align-items:stretch}.chain-line>div>span{display:none}.objective-banner{height:auto;min-height:78px}.objective-copy>span:last-child{font-size:10px}.production-yield strong{font-size:29px}}

.local-tier{flex-wrap:wrap}.panel .local-node{min-width:120px}.transport-tree .local-tier+.local-tier:before{display:none}.comparison-context{display:block;color:#71805a;font-size:10px;margin-bottom:10px}.local-tabs button:not(.active){border-bottom-color:transparent!important;background:transparent!important}

@media(max-width:800px){
 #planningView{position:fixed;inset:0;z-index:20}
 body:has(#planningView:not([hidden])){overflow:hidden}
}

#unpinProject{width:30px;min-width:30px;height:30px;padding:0;background:transparent;box-shadow:none;color:#c8cda4}.domain-nav button span:empty,.local-tabs button span:empty{display:none}
.local-tabs button.active{background:transparent}.local-tabs button:hover:not(:disabled){background:#c5c9a2!important;color:#354f34}

.upgrade-price{display:block;font-size:10px;line-height:1.6;color:#425b36;margin-top:5px}.upgrade-price .missing{color:#8a4c2e}.purchase-summary{margin:0 0 10px}.purchase-summary .small-label{font-size:10px;color:#68704d}.purchase-summary .upgrade-price{font-size:12px;font-weight:600;margin-top:3px}.local-node .upgrade-price{font-size:10px}

.upgrade-benefit{display:block;font-size:10px;font-weight:400;line-height:1.5;color:#52633d;margin:6px 0}.purchase-summary .upgrade-benefit,.action-dock>.upgrade-benefit{font-size:12px;color:#3d5634;margin:0 0 9px}.panel .local-node{line-height:1.4}

.recipe-pending{display:block;padding:7px 9px;margin:-3px 0 12px;border-left:2px solid #8b8050;background:#ddcfaa;color:#4c5d3d;font-size:11px;line-height:1.5}.recipe-pending b{font-weight:600}

/* Progress indicators stay outside the draggable research viewport. */
.planning-layout{grid-template-rows:auto minmax(0,1fr)}#treeSummary{grid-column:1;grid-row:1;min-width:0}#treeSummary[hidden]{display:none}#treeSummary .mastery-cards{margin-bottom:0}#treeContent{grid-column:1;grid-row:2;isolation:isolate;overflow:auto}#treeDetail{grid-column:2;grid-row:1/3}.planning-layout:has(#treeSummary[hidden]){row-gap:0}
@media(max-width:800px){#treeSummary{flex:none}#treeContent{overflow:auto;flex:none;height:330px;max-height:48dvh;min-height:220px}#treeDetail{flex:none}}

/* Research details: effects first, explanations on demand. */
#treeDetail .research-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin:10px 0 12px}
#treeDetail .research-heading h3{margin:0;line-height:1.2;overflow-wrap:anywhere}
#treeDetail .research-heading .info-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;min-width:22px;height:22px;padding:0;margin:2px 0 0;color:#52613d;border:1px solid #9b986e;border-radius:50%;background:transparent;box-shadow:none;font:italic bold 13px Georgia,serif}
#treeDetail .research-heading .info-button:hover,#treeDetail .research-heading .info-button:focus-visible{background:#f2e7c8;color:#304b32}
.research-metrics{display:grid;gap:0;margin:0 0 12px;border:1px solid #b2ad85;background:#e4daba}
.research-metric{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 8px;padding:10px}
.research-metric+.research-metric{border-top:1px solid #c4ba95}
.research-metric-label{display:block;font-size:11px;color:#566542}
#treeDetail .research-metric .comparison{grid-column:2;grid-row:1/3;display:flex;align-items:baseline;gap:6px;margin:0;font-variant-numeric:tabular-nums;font-size:16px;line-height:1.2;white-space:nowrap}
.research-metric .comparison b{text-align:right}
.research-metric>small{grid-column:1;display:block;font-size:10px;color:#6a7452;line-height:1.4}
#treeDetail .research-requirements{margin:0 0 15px;padding-left:9px;border-left:2px solid #a88955}
#treeDetail .research-requirements p{margin:4px 0 0;line-height:1.5;font-size:11px;color:#796342}
#treeDetail .research-benefit{font-size:13px;line-height:1.6;margin:0 0 18px}
.research-purchase{border-top:1px solid #b4ab86;padding-top:12px}
.research-purchase>.small-label,.research-requirements>.small-label{font-size:10px;letter-spacing:.3px}
#treeDetail .research-purchase .cost{margin:7px 0 0;gap:5px}
#treeDetail .research-purchase .cost span{font-size:11px}
.research-actions{display:flex;align-items:stretch;gap:6px;margin-top:12px}
#treeDetail .research-actions .primary{flex:1;min-width:0;width:auto;margin:0;min-height:36px;padding:9px 6px;font-size:11px}
#treeDetail .research-actions .primary:disabled{opacity:.65}
#treeDetail .research-actions .pin-action{display:grid;place-items:center;flex:none;width:32px;margin:0;padding:5px;color:#546843;border:1px solid #aaa17a;background:transparent}
#treeDetail .research-actions .pin-action:hover{background:#eee2bd;border-color:#6e824c}

/* Cards retain the same layout while selected, pressed, funded or acquired. */
#skillTree .skill-graph{min-width:760px}
#skillTree .skill-node{position:relative;height:96px;min-height:96px;border-width:2px;padding:25px 7px 10px;transform:none}
#skillTree .skill-node:active{transform:none!important}
#skillTree .skill-node>small{min-height:12px;line-height:12px}
#skillTree .skill-node.available:not(.purchasable){border-color:#9e9472}
#skillTree .skill-node.purchasable{border-color:#4a8150}
.purchase-badge{position:absolute;top:4px;right:5px;display:inline-flex;align-items:center;gap:4px;padding:2px 5px;border:1px solid #8eae79;border-radius:3px;background:#e5efcf;color:#2f5936;font:600 9px/11px "Segoe UI",sans-serif;white-space:nowrap;pointer-events:none}
.purchase-badge[hidden]{display:none}
.purchase-badge>i{width:6px;height:6px;border-radius:50%;background:#46a155;flex:none}
#treeBranchTabs{overflow-x:auto;flex-shrink:0}
#treeBranchTabs>button{flex:none;white-space:nowrap}
.research-branch-count{display:inline-flex;justify-content:center;align-items:center;gap:3px;width:28px;height:16px;margin-left:6px;border-radius:3px;background:#355b3d;color:#e0f0ce;font-size:9px;vertical-align:middle}
.research-branch-count:before{content:'';width:5px;height:5px;background:#7cc570;border-radius:50%;flex:none}
.research-branch-count:empty{visibility:hidden}
#researchBadge:not(:empty){color:#b8d9a0}
