.capacity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:-4px 0 12px}
.capacity-card{min-width:0;padding:8px 6px;border:1px solid #6b806d68;border-radius:3px;background:#253b2f}
.capacity-card span{display:block;color:#aebea6;font-size:8px;letter-spacing:.04em;white-space:nowrap}
.capacity-card strong{display:block;min-height:19px;margin:4px 0;color:#f3eacb;font-family:Georgia,serif;font-size:13px;font-weight:normal;white-space:nowrap}
.capacity-card small{display:block;min-height:22px;margin-top:5px;color:#b9c8af;font-size:9px;line-height:1.2}
.capacity-track{height:4px;border-radius:3px;background:#14281e;overflow:hidden}
.capacity-track i{display:block;height:100%;width:0;background:#9dc47f;transition:width .25s ease}
.capacity-card.is-critical strong{color:#e5a987}
.capacity-card.is-critical small{color:#e5b59b}
.capacity-card.is-critical .capacity-track i{background:#d88969}
.observer-inbox{margin:2px 0 16px;padding:10px;border:1px solid #82916e85;border-radius:5px;background:#24382c}
.observer-inbox .section-label{margin:0 0 9px}
.observer-inbox h2{margin:0;color:inherit;font:inherit;letter-spacing:inherit}
.observer-inbox p{margin:0;color:#aebda9;font-size:11px;line-height:1.45}
#observerInboxList:empty{display:none}
.observer-request{padding:10px 0;border-top:1px solid #7e95716b}
.observer-request:first-child{border-top:0;padding-top:0}
.observer-request h3{margin:3px 0 5px;color:#f2e5bf;font:600 14px Georgia,serif}
.observer-request .observer-meta{font-size:10px;color:#bbccad}
.observer-pacing{margin:0 0 8px;color:#b9cba9;font-size:10px;line-height:1.35}
.observer-request .observer-body{margin:0 0 9px;color:#e2e6d4;font-size:11px;line-height:1.45}
.observer-request .observer-cause{margin:-3px 0 9px;color:#d6c78e;font-size:10px;line-height:1.4}
.observer-request .observer-sender{padding:0;border:0;background:none;color:#d9c585;font-size:10px;text-decoration:underline;cursor:pointer}
.observer-choices{display:grid;gap:6px}
.observer-choice{width:100%;padding:7px 8px;text-align:left;background:#354f3b;border:1px solid #7d9a70;border-radius:3px;color:#f2ead3;cursor:pointer}
.observer-choice:hover:not(:disabled),.observer-choice:focus-visible{border-color:#e5cf89;background:#416348}
.observer-choice:disabled{opacity:.48;cursor:not-allowed}
.observer-choice strong,.observer-choice small{display:block}
.observer-choice strong{font-size:11px}
.observer-choice small{margin-top:2px;color:#c8d3bb;font-size:10px;line-height:1.35}
.observer-inbox .observer-inbox-notice{margin-top:8px;color:#e4ca82}
.observer-history{margin-top:10px;border-top:1px solid #7e95716b;padding-top:8px;color:#cbd5c4;font-size:10px}
.observer-history summary{cursor:pointer;color:#dec98b}
.observer-history div{display:grid;gap:5px;padding-top:7px}
.observer-history p{margin:0;padding-bottom:5px;border-bottom:1px solid #7e957138}
.observer-history #observerDecisionHistoryList>details{padding:5px 0;border-bottom:1px solid #7e957138}
.observer-history #observerDecisionHistoryList>details>summary{color:#dfdfc4;line-height:1.45;overflow-wrap:anywhere}
.observer-history #observerDecisionHistoryList>details>p{margin:5px 0 0 13px;padding:0;color:#b7c8b3;border:0;line-height:1.4;overflow-wrap:anywhere}
.observer-rearrangement{margin:12px 0;padding:10px;border:1px solid #82916e85;border-radius:5px;background:#263a2e}
.observer-rearrangement .section-label{margin-bottom:7px}
.observer-rearrangement h2{margin:0;color:inherit;font:inherit;letter-spacing:inherit}
.observer-rearrangement p{margin:0 0 9px;color:#c8d3bb;font-size:11px;line-height:1.45}
.observer-rearrangement .place-controls{margin-bottom:8px}
.resident-gear-row{display:flex;align-items:center;gap:6px;margin:3px 0;text-transform:capitalize}
.resident-gear-row img{width:22px;height:22px;object-fit:contain;image-rendering:pixelated}
#startResidentTraining{margin:3px 0 9px;padding:7px 9px;width:100%;text-align:left;border:1px solid #9b9d70;border-radius:5px;background:#344638;color:#f0dfb5;font-size:10px;cursor:pointer}
#startResidentTraining:disabled{opacity:.55;cursor:not-allowed}
.observer-rearrangement #rearrangementStatus{margin:0;color:#e4ca82}
@media(max-width:460px){.capacity-grid{grid-template-columns:1fr}.capacity-card{padding:6px 8px}.capacity-card strong{min-height:0}.capacity-card span{font-size:9px}.observer-inbox .section-label{display:flex}}
.urgent-alerts{margin:8px 0 0;padding:8px 10px;border:1px solid #cf916c88;border-radius:5px;background:#3a3029;color:#f4d5b7;font-size:10px;line-height:1.35}
.urgent-alerts>strong{display:block;margin-bottom:4px;font-size:9px;letter-spacing:.12em}
.urgent-alert+.urgent-alert{margin-top:4px;padding-top:4px;border-top:1px solid #cf916c44}
#followResident{margin:4px 0 8px;padding:5px 9px;border:1px solid #82916e85;border-radius:4px;background:#273a30;color:#e8e7d8;font-size:10px;cursor:pointer}
#followResident[aria-pressed="true"]{background:#587048;color:#fff8da}
.needs-help,.daily-summary{margin:5px 0 12px;padding:6px 8px;border:1px solid #82916e66;border-radius:4px;background:#24372d;color:#cad6c4;font-size:10px;line-height:1.45}
.needs-help summary,.daily-summary summary{cursor:pointer;color:#e6d49d}
.needs-help p,.daily-summary p{margin:5px 0 0}
#openChronicle{margin:0 0 12px;padding:7px 10px;border:1px solid #b49e6d;border-radius:4px;background:#334536;color:#f3e5bb;cursor:pointer}
.chronicle-dialog{width:min(620px,calc(100vw - 28px));max-height:min(80vh,800px);padding:18px;border:1px solid #a8b996;border-radius:8px;background:#203229;color:#eee9d8;box-shadow:0 18px 60px #07110eb5}
.chronicle-dialog::backdrop{background:#09130cbb}
.chronicle-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.chronicle-head h2{margin:0;font:26px Georgia,serif}
.chronicle-head button{border:1px solid #899a7d;border-radius:4px;background:#354b3a;color:#fff;font-size:20px;cursor:pointer}
#chronicleList{max-height:58vh;overflow:auto;margin-top:12px}
#chronicleList details{padding:10px;border-top:1px solid #80927666;font-size:12px;line-height:1.5}
#chronicleList summary{cursor:pointer;color:#f0d89c}
#chronicleList p{margin:5px 0 0}
.observer-choice .observer-impact{display:block;margin-top:4px;color:#e9d491;font-size:10px;line-height:1.3}
.keeper-panel{margin:2px 0 12px;padding:9px 10px;border:1px solid #baad78a6;border-radius:5px;background:#303d30;color:#e5e2ca}
.keeper-panel .section-label{margin:0 0 5px}.keeper-panel h2{margin:0;font:inherit;letter-spacing:inherit}
.keeper-panel p{margin:0 0 5px;font-size:11px;line-height:1.4}.keeper-panel small{display:block;color:#d8c888;font-size:10px;line-height:1.4}

/* The map stays visible while the information rail shows one task area at a time. */
.sidebar{overflow:hidden}
.sidebar-head{flex:none;margin-bottom:11px}
.sidebar-status{display:flex;flex:none;flex-wrap:wrap;align-items:center;gap:5px 10px;padding:8px 10px;margin-bottom:10px;border:1px solid #81967570;border-radius:5px;background:#2b4033;color:#dce4c6;font-size:10px;letter-spacing:.04em}
.sidebar-status span:first-child{color:#f0d991;font-weight:700}
.sidebar-status span:nth-child(2){font-weight:700;font-variant-numeric:tabular-nums}
.sidebar-status span:last-child{min-width:0;margin-left:auto;color:#bbd1b0;overflow-wrap:anywhere}
.sidebar-time-controls{flex:none;margin:0 0 10px}
.sidebar-time-controls button{min-height:30px}
.sidebar-search{display:grid;gap:5px;margin:-3px 0 4px;color:#c5d4bb;font-size:10px;font-weight:700;letter-spacing:.03em}
.sidebar-search input{width:100%;min-width:0;padding:8px 9px;border:1px solid #8299759c;border-radius:5px;background:#1c3026;color:#f1edda;font:inherit;letter-spacing:normal}
.sidebar-search input::placeholder{color:#9baea0}
.sidebar-search input:focus-visible{outline:2px solid #ead28a;outline-offset:2px}
.sidebar-search-count{margin:0 0 8px;color:#aebfa7;font-size:10px;line-height:1.3}
.resident-faces button[hidden],.grave-list button[hidden]{display:none!important}
.sidebar .resident-faces{max-height:172px;overflow-y:auto;scrollbar-gutter:stable;padding:1px 3px 1px 1px}
.sidebar .building-list{max-height:230px;overflow-y:auto;scrollbar-gutter:stable;padding:1px 3px 1px 1px}
.sidebar #observerDecisionHistoryList{max-height:260px;overflow-y:auto;scrollbar-gutter:stable}
.sidebar .observer-request,.sidebar .observer-order-current,.sidebar .building-list>div,.sidebar .grave-list button{min-width:0;overflow-wrap:anywhere}
.sidebar .observer-choice,.sidebar .observer-order-buttons button,.sidebar .policy-controls button{white-space:normal;overflow-wrap:anywhere}
.sidebar .observer-order-group summary:focus-visible,.sidebar .observer-history summary:focus-visible,.sidebar .economy-panel summary:focus-visible{outline:2px solid #ead28a;outline-offset:2px;border-radius:2px}
.sidebar-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));flex:none;gap:4px;padding-bottom:11px;border-bottom:1px solid #74886a80}
.sidebar-tabs button{min-width:0;min-height:35px;padding:6px 2px;border:1px solid #75876780;border-radius:4px;background:#26392d;color:#c6d1b9;font-size:10px;font-weight:700;cursor:pointer}
.sidebar-tabs button[aria-selected="true"]{border-color:#d4bd78;background:#455b3e;color:#fff2d0}
.sidebar-tabs button:hover{background:#3a503a}
.sidebar-tabs button:focus-visible{outline:2px solid #f1d98b;outline-offset:2px}
.sidebar-tab-badge{display:inline-grid;min-width:17px;height:17px;place-items:center;margin-left:2px;padding:0 3px;border-radius:9px;background:#d3ad68;color:#1d2a1f;font-size:10px}
.sidebar-tab-badge[hidden],.sidebar-page[hidden]{display:none!important}
.sidebar-pages{min-height:0;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;padding:15px 3px 15px 0}
.sidebar-page{display:flow-root}
.sidebar-page .section-label{margin-top:4px}
.sidebar-page+.sidebar-page:not([hidden]){margin-top:18px;padding-top:15px;border-top:1px solid #74886a65}
.sidebar-page .sidebar-title{margin:0 0 20px}
.sidebar-page .sidebar-title h1{font-size:25px}
.sidebar-page .sidebar-title p{margin-top:7px}
.sidebar-page .sidebar-footer{margin-top:15px}
.observer-commitments{margin:14px 0 8px;padding:10px;border:1px solid #80947380;border-radius:6px;background:#26392e}
.observer-commitments .section-label{margin:0 0 6px}
.observer-commitments h2{margin:0;font:inherit;letter-spacing:inherit}
.commitment-card{margin:8px 0 0;padding:9px;border:1px solid #a5ae8170;border-radius:5px;background:#1c3026}
.commitment-card strong,.commitment-card small{display:block}
.commitment-card small{margin-top:4px;color:#c8d3bb;font-size:10px;line-height:1.4}
.commitment-card .capacity-track{margin:7px 0}
.commitment-controls{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.commitment-controls button{padding:5px 8px;border:1px solid #9bad84;border-radius:4px;background:#385040;color:#f8edcd;cursor:pointer}
.commitment-controls button:focus-visible{outline:2px solid #ead28a;outline-offset:2px}
.quest-panel summary{display:flex;align-items:center;justify-content:space-between;gap:5px;cursor:pointer;color:#f8edcd;font-size:10px;font-weight:700;letter-spacing:.03em}
.quest-panel summary span{flex:none;color:#b9d49e;font-size:8px;letter-spacing:0;white-space:nowrap}
.quest-panel .quest-card{margin:8px 0;padding:9px;border:1px solid #a5ae8170;border-radius:5px;background:#1c3026;overflow-wrap:anywhere}
.quest-card strong,.quest-card small{display:block}.quest-card p{margin:5px 0;font-size:11px;line-height:1.4}
.quest-card small{color:#c8d3bb;font-size:10px;line-height:1.4}
.quest-card button{margin:5px 5px 0 0;padding:5px 8px;border:1px solid #9bad84;border-radius:4px;background:#385040;color:#f8edcd;cursor:pointer}
.quest-card button:disabled{opacity:.55;cursor:default}
#questNotice{margin:7px 0;color:#f3d493;font-size:10px}
.quest-more{margin:8px 0}.quest-more summary{padding:7px;border:1px solid #8ca17e80;border-radius:4px;background:#1c3026}
#commitmentNotice{margin:7px 0;color:#f3d493;font-size:10px}
@media(max-width:800px){.sidebar{max-height:calc(100dvh - 84px)}.sidebar-pages{padding-top:11px}}
@media(max-width:460px){.sidebar{width:min(300px,calc(100vw - 20px));right:10px}.sidebar .section-label{display:flex}.sidebar-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-status{font-size:9px}.sidebar-time-controls button{min-height:28px}.sidebar .resident-faces{max-height:160px}.sidebar .building-list{max-height:190px}.sidebar-page .sidebar-title p{display:block}}

.warrior-panel summary{cursor:pointer;font-size:11px;font-weight:700;letter-spacing:.08em;color:#f8edcd}
.warrior-panel summary span{float:right;color:#cde0b7}.warrior-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:10px 0}
.warrior-grid div{padding:6px;border:1px solid #8ba17f55;border-radius:4px;background:#1c3026;font-size:10px}.warrior-grid strong{display:block;font-size:15px}
.warrior-panel .place-controls{margin:8px 0}.warrior-panel input[type=number]{width:64px;max-width:100%;background:#17291f;color:#f8edcd;border:1px solid #9bad84;border-radius:4px}
.warrior-toggle{display:flex;gap:7px;align-items:start;font-size:10px;line-height:1.4;margin:9px 0}.warrior-panel .frontier-note{margin:6px 0}

.world-goals{margin:0 0 14px;padding:9px;border:1px solid #81967580;border-radius:6px;background:#26392e}
.world-goals summary{cursor:pointer;color:#f8edcd;font-size:11px;font-weight:700;letter-spacing:.05em}
.world-goals summary span{float:right;color:#b9d49e;font-size:9px}
.world-goals-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px}
.world-goals-grid p{min-width:0;margin:0;padding:6px;border-radius:4px;background:#1b3025;font-size:10px;line-height:1.35;overflow-wrap:anywhere}
.world-goals-grid strong,.world-goals-grid span{display:block}.world-goals-grid strong{color:#e3cf91;margin-bottom:3px}
@media(max-width:460px){.world-goals-grid{grid-template-columns:1fr}}

/* B-049: the rail has one scroll region between its permanent status and goal dock. */
.sidebar{padding:15px 14px 10px}
.sidebar-head{margin-bottom:5px}
.sidebar-kicker{font-size:9px}
.sun-icon{font-size:20px}
.sidebar-status{margin-bottom:5px;padding:6px 8px}
.sidebar-vitals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;flex:none;margin-bottom:6px}
.sidebar-vitals>div{min-width:0;padding:5px 3px;border:1px solid #79916e70;border-radius:4px;background:#233a2d;text-align:center}
.sidebar-vitals span,.sidebar-vitals strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-vitals span{color:#aabf9f;font-size:8px;letter-spacing:.04em}
.sidebar-vitals strong{margin-top:2px;color:#f3e5b9;font-size:10px;font-variant-numeric:tabular-nums}
.sidebar-time-controls{margin-bottom:6px}
.sidebar-time-controls button{min-height:28px}
.sidebar-tabs{grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;padding-bottom:6px}
.sidebar-tabs button{position:relative;min-height:39px;padding:3px 1px;font-size:9px;line-height:1.15}
.sidebar-tabs button>span[aria-hidden]{display:block;margin-bottom:2px;font-size:13px;line-height:1}
.sidebar-tab-badge{position:absolute;top:-3px;right:-3px;min-width:14px;height:14px;margin:0;padding:0 2px;font-size:8px}
.sidebar-pages{padding:8px 2px 6px 0}
.sidebar-section{min-width:0;margin:0 0 7px;border:1px solid #748c707a;border-radius:5px;background:#22372a;overflow:hidden}
.sidebar-section>summary{display:flex;align-items:center;gap:6px;min-height:35px;padding:7px 9px;list-style:none;cursor:pointer;background:#2c4435;color:#f5ead0;font-size:11px;font-weight:700}
.sidebar-section>summary::-webkit-details-marker{display:none}
.sidebar-section>summary::before{content:'▸';color:#dfca84;font-size:12px;transition:transform .12s}
.sidebar-section[open]>summary::before{transform:rotate(90deg)}
.sidebar-section>summary:hover{background:#38523d}
.sidebar-section>summary:focus-visible{outline:2px solid #f1d98b;outline-offset:-2px}
.sidebar-section-metric{min-width:0;margin-left:auto;color:#b7d0ab;font-size:9px;font-weight:600;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-section-body{padding:9px 8px 10px}
.sidebar-section-body>:last-child{margin-bottom:0}
.sidebar-section-body>.section-label:first-child{margin:0 0 7px;font-size:8px;letter-spacing:.11em}
.sidebar-section .observer-commitments,.sidebar-section .observer-orders,.sidebar-section .observer-inbox{margin:0}
.sidebar-section .sidebar-title{margin:3px 0 9px}
.sidebar-section .sidebar-title h1{font-size:21px}
.sidebar-section .sidebar-title p{margin-top:5px;font-size:10px}
.sidebar-page[data-sidebar-category="goals"] #goalButtons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.sidebar-page[data-sidebar-category="goals"] #goalButtons button{min-width:0;min-height:42px;margin:0;padding:8px;white-space:normal;text-align:left}
.sidebar-page[data-sidebar-category="goals"] #sidebarDockMilitia{margin-top:12px;border-top:1px solid #78916e70}
.sidebar-page[data-sidebar-category="goals"] #sidebarDockMilitia label{margin:12px 0 0}
.sidebar-section-body>.section-label:first-child,.sidebar-section-body>.observer-inbox>.section-label:first-child,.sidebar-section-body>.observer-orders>.section-label:first-child,.sidebar-section-body>.observer-commitments>.section-label:first-child{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;clip-path:inset(50%)}
.sidebar-section .observer-inbox{padding:0;border:0;background:transparent}
.sidebar-section .observer-commitments{padding:0;border:0;background:transparent}
.sidebar-section .observer-orders{padding:0;border:0;background:transparent}
.sidebar-section.warrior-panel>summary,.sidebar-section.quest-panel>summary{display:flex;align-items:center;justify-content:space-between;min-height:35px;margin:0;padding:7px 9px;background:#2c4435}
.sidebar-section.warrior-panel>summary span,.sidebar-section.quest-panel>summary span{float:none;margin-left:auto}
@media(max-width:800px){.sidebar{padding:9px}.sidebar-vitals span{font-size:7px}.sidebar-vitals strong{font-size:9px}.sidebar-tabs button{font-size:8px}.sidebar-section-body{padding:7px}}
@media(max-width:460px){.sidebar{width:min(300px,calc(100vw - 20px));right:10px}.sidebar-tabs{grid-template-columns:repeat(6,minmax(0,1fr))}.sidebar-status{font-size:9px}.sidebar-section-body>.section-label:first-child{display:flex}.sidebar-page[data-sidebar-category="goals"] #goalButtons{grid-template-columns:1fr}}
