/* Three stable levels: inventory, objective, domain navigation.
   Scene navigation uses fixed slots, independent of its changing title. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.topbar{min-height:98px;padding:8px 18px}
.topbar .brand{flex-basis:170px;gap:7px}.topbar .brand h1{font-size:17px;line-height:1.2;letter-spacing:0}.topbar .crest{font-size:23px}
.resources .resource{height:64px;min-height:64px;max-height:64px;grid-template-rows:12px 15px;align-content:start;padding-top:5px}
#objectiveBanner{height:44px;min-height:44px;padding:6px 18px;gap:10px;background:#2a3b34}
.objective-copy{display:flex;flex-direction:row;align-items:center;gap:12px}.objective-copy #objectiveLabel{flex:0 0 54px}.objective-copy strong{min-width:0;flex:0 1 auto}
.objective-copy .eyebrow{font-size:9px;letter-spacing:.7px;color:#aabc9b}.objective-copy strong{font:15px Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
#objectiveButton{min-width:67px;padding:6px 12px;font-size:11px;height:30px;white-space:nowrap}
#objectiveInfo{display:grid;place-items:center;width:24px;min-width:24px;height:24px;padding:0;border:1px solid #7d8b6b;border-radius:50%;font:italic bold 13px Georgia,serif;color:#d5d8b7;background:transparent;flex:none}
#unpinProject{padding:3px 6px;background:transparent;border:0}
.domain-nav{height:42px;min-height:42px;padding:0 18px;display:flex;justify-content:space-between;gap:20px;overflow:visible}
.domain-pages{display:flex;align-items:stretch;gap:17px;min-width:0;height:100%}
.domain-pages button{white-space:nowrap;font-size:12px;padding:10px 2px;flex:none;transform:none}
.domain-pages button span:empty{display:none}
.domain-nav .subbar{height:auto;min-height:0;padding:0;gap:18px;flex-wrap:nowrap;flex:none;background:transparent;border:0;font-size:10px;color:#aebfad;font-variant-numeric:tabular-nums}
#population{white-space:nowrap;min-width:140px}#foodStatus{white-space:nowrap;min-width:102px}
#saved{display:inline-block;min-width:64px;margin:0;font-size:9px;color:#92a990;white-space:nowrap}
.world-heading{display:grid;grid-template-columns:160px 210px minmax(0,1fr) auto;align-items:center;gap:10px;height:48px;min-height:48px;padding:7px 18px;border-bottom:1px solid #52635a}
.world-section[data-city-stage] .world-heading{border-bottom-width:1px;border-bottom-style:solid}
.world-heading .locations{grid-column:1;grid-row:1;display:flex;gap:4px;width:160px}
.world-heading .locations button{width:64px;min-width:64px;height:32px;padding:5px 8px;font-size:11px;transform:none}
.world-heading .locations button[data-location="city"]{width:92px;min-width:92px}
.world-heading #mineSelector{grid-column:2;grid-row:1;width:210px;max-width:none;height:32px;margin:0;padding:0;background:transparent;border:0;display:block;flex:none}
/* The hidden site picker retains its slot, without focus or accessible content. */
.world-heading #mineSelector[hidden]{display:block;visibility:hidden;pointer-events:none}
.world-heading #mineSelector label{display:block;width:100%;height:100%}
.world-heading #mineChoice{display:block;width:100%;max-width:none;height:32px;margin:0;padding:5px 24px 5px 10px;font-size:12px;cursor:pointer}
.world-heading .zoom{grid-column:4;grid-row:1;margin:0;gap:5px;justify-self:end}
.world-heading .zoom span{min-width:34px}.world-heading .zoom button{width:27px;height:27px;transform:none}
.world-caption{min-height:26px;padding:6px 14px}
@media(max-width:1279px){.topbar{min-height:0}.topbar .brand{flex:none}.domain-pages{gap:12px}.domain-nav{gap:12px;padding:0 14px}.domain-nav .subbar{gap:10px}}
@media(max-width:1050px){#saved{display:none}.world-heading{grid-template-columns:150px 176px minmax(0,1fr) auto;padding:7px 12px;gap:7px}.world-heading .locations{width:150px}.world-heading .locations button{width:60px;min-width:60px}.world-heading .locations button[data-location="city"]{width:86px;min-width:86px}.world-heading #mineSelector{width:176px}.world-heading .zoom span{display:none}}
@media(max-width:899px){.resources .resource{height:54px;min-height:54px;max-height:54px;grid-template-rows:10px 13px;padding-top:3px}.resources .resource:has(.city-stock){padding-bottom:25px}}
@media(max-width:800px){.topbar{padding:8px 10px}.topbar .brand h1{font-size:17px}.domain-nav{height:72px;min-height:72px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:0 12px;gap:0}.domain-pages{width:100%;height:40px;flex:none;justify-content:space-between;gap:4px}.domain-pages button{font-size:11px;padding:9px 2px}.domain-nav .subbar{height:30px;justify-content:space-between;font-size:10px;gap:8px}.domain-nav .subbar #population,.domain-nav .subbar #foodStatus{min-width:0}#objectiveBanner{height:44px;min-height:44px;padding:6px 12px;gap:7px}.objective-copy{gap:7px}.objective-copy #objectiveLabel{flex-basis:43px}.objective-copy strong{font-size:13px}#objectiveButton{min-width:55px;padding:5px 8px;font-size:10px}#objectiveInfo{width:24px;min-width:24px;height:24px}.world-heading{grid-template-columns:150px minmax(0,1fr);height:48px;min-height:48px;gap:9px;padding:7px 12px}.world-heading #mineSelector{width:100%;max-width:210px;flex-basis:auto;order:initial;margin:0}.world-heading .zoom{position:absolute;top:59px;right:10px;z-index:3;padding:4px;background:#203332e8;border:1px solid #687964}.world-heading .zoom span{display:block}.world-caption{font-size:8px}}

/* Feedback overlays the scene without reserving an empty strip or moving it. */
#viewport .action-feedback{position:absolute;left:12px;bottom:12px;z-index:4;pointer-events:none;flex:none;width:max-content;max-width:calc(100% - 24px);height:auto;min-height:0;max-height:none;padding:7px 11px;background:#20332ee8;border:1px solid #67775d;white-space:normal;line-height:1.5;box-shadow:0 2px 8px #101c1d55}
#viewport .action-feedback:empty{display:none}#viewport .action-feedback.blocked{background:#3a3029ef;border-color:#b48a56;color:#f0c798}

.dispatch-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.panel .dispatch-heading h3{margin:0;font-size:15px}.dispatch-card .small-label{display:inline-flex;align-items:center;gap:6px}.dispatch-toggle{display:flex;align-items:center;gap:8px;margin:12px 0}.dispatch-toggle .toggle{flex:1;min-width:0}.dispatch-card .worker-controls{margin-bottom:8px}.dispatch-card .dispatch-meta{font-variant-numeric:tabular-nums}
