.calendar-row,.resident-needs,.resident-memory,.power-message,.save-row{font-size:11px;color:#bdc8b4}
.calendar-row,.save-row{display:flex;justify-content:space-between;gap:8px;margin:-4px 0 12px}
.calendar-row span:first-child{color:#e5d397}
.resident-needs{margin:7px 0 4px;line-height:1.55}.resident-memory{margin:5px 0 13px;color:#d1bb83;line-height:1.45}
.happiness-meter{display:grid;grid-template-columns:1fr auto;gap:5px;margin:7px 0 12px;color:#d7d6b0;font-size:10px;letter-spacing:.08em}.happiness-meter strong{color:#efdc94}.happiness-track{grid-column:1/-1;height:8px;background:#1c3028;border:1px solid #6f8764;border-radius:5px;overflow:hidden}.happiness-track i{display:block;width:70%;height:100%;background:linear-gradient(90deg,#8eaf69,#e1c977);transition:width .45s}
.place-controls{display:flex;flex-wrap:wrap;align-items:end;gap:5px;margin:8px 0 11px}.place-controls label{display:flex;flex:1 1 120px;flex-direction:column;gap:4px;font-size:10px;color:#d4d2b4}.place-controls select{min-width:0;width:100%;padding:6px;background:#253b30;border:1px solid #728b6b;border-radius:4px;color:#f2e9cc;font-size:10px}.place-controls button{border:1px solid #83936f;background:#3e5b45;color:#f2e9cc;border-radius:4px;padding:7px;font-size:10px;cursor:pointer}.place-controls button:hover{background:#678358}
.crafted-grid{grid-template-columns:1fr 1fr;margin-top:-7px;margin-bottom:20px}
.policy-controls{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:8px}
.policy-controls button,.power-controls button,.save-row button{border:1px solid #83936f;background:#2a4034;color:#e9e6cc;border-radius:4px;padding:7px 3px;font-size:10px;cursor:pointer}
.policy-controls button.selected,.policy-controls button:hover,.power-controls button:hover{background:#657c55;color:#fff6d5}
.power-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px}.power-controls button:disabled{opacity:.45;cursor:default}
.power-message{min-height:18px;margin:5px 0 17px;color:#d9c57f}
.economy-panel{margin:-5px 0 15px;padding:8px 10px;border:1px solid #738a735e;border-radius:4px;background:#253b30;color:#d8d2af;font-size:10px}
.economy-panel summary{display:flex;justify-content:space-between;cursor:pointer;font-weight:bold;letter-spacing:.09em}.economy-panel summary span{color:#aac7a1}
.economy-panel p{margin:7px 0 0;color:#aebda9;line-height:1.4}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:8px}.detail-grid>div{display:flex;justify-content:space-between;gap:5px;border-bottom:1px solid #82927c30;padding:3px 0}.detail-grid strong{color:#efdfaa}
.faith-row{display:flex;justify-content:space-between;margin:0 0 17px;color:#d9d4b6;font-size:10px;letter-spacing:.08em}.faith-row strong{color:#eadc9d}
.frontier-note{font-size:10px;line-height:1.5;color:#b7c5ae;margin:4px 0 8px}.frontier-list{display:grid;gap:5px;margin-bottom:19px}.frontier-list>div{display:flex;justify-content:space-between;gap:8px;padding:7px;border:1px solid #738a735e;background:#253b30;border-radius:4px;font-size:10px}.frontier-list strong{color:#ead796}.frontier-list small{color:#abc09e}.frontier-list button{width:100%;text-align:left;padding:8px;border:1px solid #83936f;background:#314b39;color:#f3e7c5;border-radius:4px;font-size:10px;cursor:pointer}.frontier-list button:hover,.frontier-list button:focus-visible{background:#56734e;outline:1px solid #e8cb8b}.frontier-list .zone-current{color:#ead796;font-weight:700}
.history{margin:8px 0 20px;color:#d6c99e;font-size:11px}.history summary{cursor:pointer}.history #historyLog{max-height:200px;overflow:auto;margin:8px 0;color:#bbc8b5}.history #historyLog div{padding:5px 0;border-bottom:1px solid #74867243}.history small{color:#d8c689;margin-right:5px}
.grave-list{display:flex;flex-direction:column;gap:4px;margin-bottom:16px;max-height:260px;overflow:auto}.grave-list button{border:1px solid #7e8e76;background:#263a30;color:#e7e2cf;border-radius:4px;text-align:left;padding:7px;cursor:pointer;font-size:11px}.grave-list button:hover{background:#3f5543}
.grave-panel{top:82px;left:312px}.grave-panel .structure-title img{width:62px;height:75px}
.save-row{align-items:center;margin:0 0 15px}.save-row button{padding:7px 12px}.save-row span{color:#a5b69f}
@media(max-width:800px){.grave-panel{left:10px;top:72px}.policy-controls{grid-template-columns:repeat(3,1fr)}.power-controls{grid-template-columns:repeat(2,1fr)}}
.observer-orders{margin:15px 0 18px;padding:14px;border:1px solid #73927770;border-radius:11px;background:#24392e78}
.observer-orders .section-label{margin-bottom:6px}.observer-orders h2{font-size:11px;letter-spacing:.13em;margin:0}
.observer-orders-intro{margin:0 0 13px;color:#b6c6b5;font-size:11px;line-height:1.5}
.observer-order-current{display:grid;gap:6px;border:1px solid #86ad7955;background:#182d25;padding:10px 11px;border-radius:8px}
.observer-order-current strong{color:#f2e9ca;font-size:12px}.observer-order-current span,.observer-order-current small{font-size:10px;color:#bad2b8}
.observer-order-current .capacity-track{margin:2px 0}.observer-order-current .capacity-track i{background:#bddb8e;transition:width .2s}
.observer-orders .place-controls{margin:9px 0 0}.observer-orders .place-controls button{font-size:10px}
#observerOrderNotice{min-height:25px;margin:10px 0;color:#dac99b;font-size:10px;line-height:1.4}
.observer-order-group{border-top:1px solid #72916e55;padding:8px 0}.observer-order-group:last-child{padding-bottom:0}
.observer-order-group summary{color:#e6e5ce;font-size:11px;font-weight:700;cursor:pointer;list-style-position:inside;padding:2px 0}
.observer-order-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px}
.observer-order-buttons button{min-width:0;min-height:38px;border:1px solid #73916d9c;border-radius:6px;background:#31503b;color:#f0eddb;cursor:pointer;font-size:10px;line-height:1.3;text-align:left;padding:7px 8px;white-space:normal;overflow-wrap:anywhere}
.observer-order-buttons button:hover,.observer-order-buttons button:focus-visible{background:#557451;outline:2px solid #bbd59d;outline-offset:1px}
.observer-order-buttons button.is-unavailable{border-color:#566b5d;color:#a7b4a4;background:#273b30}
.observer-order-buttons button.is-active{background:#77885c;color:#fff8dd;border-color:#d1dca4}
@media(max-width:460px){.observer-orders{padding:9px}.observer-order-buttons{grid-template-columns:1fr}.observer-order-buttons button{min-height:40px}}
@media(max-width:510px){.grave-panel{top:auto;bottom:75px}}

/* The settlement name belongs to the fixed world header, not the terrain. */
.topbar{z-index:8}
.topbar .brand-copy{display:flex;flex-direction:column;align-items:flex-start}
.topbar .location-tag{position:static;margin-top:7px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:#f1d68c;font:600 12px/1.2 Georgia,serif;text-shadow:0 2px 6px #07110e}
.topbar .location-tag::before{content:'◈';margin-right:7px;color:#eed29a}

/* Exit signboards stay anchored to their path as the observer pans and zooms. */
.map-exits{position:absolute;inset:0;z-index:7;pointer-events:none}
.map-loading:not([hidden]){position:absolute;inset:0;z-index:18;display:grid;place-items:center;background:#14221ce0;color:#f3e7c5;font:700 18px Georgia,serif;pointer-events:auto}
.map-exit{position:absolute;display:block;min-width:152px;max-width:215px;transform:translate(-50%,-100%);padding:9px 13px 10px;border:2px solid #e7c878;border-radius:4px;background:linear-gradient(180deg,#2d4634,#1a3027);color:#fff6d4;box-shadow:0 0 0 3px #17281dc9,0 7px 19px #06130bbb;font:700 15px/1.16 Georgia,serif;text-align:center;text-shadow:0 2px 3px #111;cursor:pointer;pointer-events:auto;animation:exitGlow 2.6s ease-in-out infinite}
.map-exit::before{content:'↗  CLICK TO TRAVEL';display:block;margin-bottom:4px;color:#e6cb82;font:700 9px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.14em;text-shadow:none}
.map-exit::after{content:'';position:absolute;left:calc(50% - 9px);bottom:-10px;border-left:9px solid transparent;border-right:9px solid transparent;border-top:9px solid #d7b76b}
.map-exit[hidden]{display:none}
.map-exit:hover,.map-exit:focus-visible{transform:translate(-50%,-105%);background:linear-gradient(180deg,#476342,#25452f);border-color:#fff2b0;box-shadow:0 0 0 4px #13291ccb,0 0 22px #f0ce79c9;animation:none;outline:none}
@keyframes exitGlow{50%{box-shadow:0 0 0 3px #17281dc9,0 0 19px #e2c06c89,0 7px 19px #06130bbb}}
@media(prefers-reduced-motion:reduce){.map-exit{animation:none}}
@media(max-width:800px){.map-exit{min-width:125px;max-width:165px;padding:7px 9px;font-size:12px}.topbar .location-tag{font-size:11px}}
.world-error:not([hidden]){position:absolute;z-index:30;left:50%;top:44%;transform:translate(-50%,-50%);max-width:min(680px,85%);padding:18px 22px;border:1px solid #d8a989;border-radius:8px;background:#25372f;color:#fff1dc;font:600 14px/1.5 system-ui,sans-serif;box-shadow:0 16px 45px #0009}
.world-ledger{margin-top:5px}.ledger-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.ledger-actions button{border:1px solid #83936f;background:#2a4034;color:#e9e6cc;border-radius:4px;padding:7px;font-size:10px;cursor:pointer}.ledger-actions button:hover{background:#375540}.world-ledger .detail-grid{grid-template-columns:1fr}.world-ledger #ledgerMessage{min-height:14px}
.resident-decision{font-size:10px;line-height:1.4;color:#b7c9a8;margin:3px 0 8px}
.seed-controls{display:grid;grid-template-columns:1fr auto;gap:5px;margin-top:10px;align-items:center}.seed-controls label{grid-column:1/-1;color:#c7d2bd}.seed-controls input{width:100%;min-width:0;padding:6px;border:1px solid #83936f;border-radius:4px;background:#182b23;color:#f4ecd5}.seed-controls button{border:1px solid #83936f;background:#2a4034;color:#e9e6cc;border-radius:4px;padding:7px;font-size:10px;cursor:pointer}
