.world-entry{width:min(380px,calc(100vw - 36px));padding:26px;color:#f7f0d5;background:#20392f}.world-entry::backdrop{background:#13271ef2}.world-entry h2{margin:0 0 22px;font-size:21px}.world-entry label{display:block;font-size:13px;margin-bottom:8px}.world-entry input{width:100%;padding:12px;background:#f7f0d5;color:#20392f;border:2px solid #91aa83;font:16px sans-serif}.world-entry p{font-size:12px;line-height:1.8;color:#abc89b}.world-entry button{padding:12px 20px;width:100%;color:#f7f0d5}.world-entry small{display:block;margin-top:12px;color:#e9cd81}#world-minimap{position:absolute;left:26px;top:24px;width:164px;padding:0;pointer-events:auto;color:#e5e8c5;z-index:7;cursor:pointer}#world-minimap canvas{display:block;width:100%;height:112px;image-rendering:pixelated}#world-minimap span{display:block;padding:5px;font-size:10px}#world-chat{position:absolute;right:26px;top:100px;width:min(360px,calc(100vw - 36px));height:min(450px,60dvh);z-index:12;display:flex;flex-direction:column;background:#20392ff5;padding:14px;color:#f7f0d5;pointer-events:auto}#world-chat[hidden]{display:none}#world-chat header,#world-map header{display:flex;justify-content:space-between;align-items:center;gap:12px}#world-chat button,#world-map button{background:#abc89b;color:#20392f;border:0;padding:8px 12px;cursor:pointer}#world-chat ol{flex:1;min-height:0;overflow:auto;list-style:none;padding:0;margin:8px 0;overscroll-behavior:contain}#world-chat li{padding:8px 0;border-bottom:1px solid #46624f}#world-chat li small{color:#abc89b;font-size:11px}#world-chat li p{margin:4px 0;font-size:13px;line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}#world-chat form{display:flex;gap:8px}#world-chat input{min-width:0;flex:1;background:#f7f0d5;color:#20392f;border:0;padding:10px;font-size:16px}#world-chat .world-status{font-size:10px;color:#abc89b;margin:8px 0}#world-notices{position:absolute;left:50%;top:20px;transform:translateX(-50%);z-index:13;pointer-events:none;max-width:40vw}#world-notices p{background:#20392fd9;border:1px solid #abc89b;padding:7px 12px;color:#e8e9cc;font-size:11px;animation:world-appear .2s}#world-labels{position:fixed;inset:0;pointer-events:none;z-index:6;overflow:hidden}.world-player-label{position:absolute;left:0;top:0;width:0;display:flex;align-items:center;flex-direction:column}.world-player-label[hidden]{display:none}.world-player-label span{display:block;transform:translateY(-100%);position:absolute;bottom:7px;min-width:40px;max-width:220px;width:max-content;background:#f7f0d5ed;color:#20392f;padding:7px 10px;border:2px solid #35513f;border-radius:6px;font:12px/1.6 sans-serif;overflow-wrap:anywhere}.world-player-label span[hidden]{display:none}.world-player-label small{color:#f7f0d5;background:#20392fb8;padding:2px 4px;white-space:nowrap;font-size:11px}#world-map{position:fixed;inset:20px;margin:auto;width:min(900px,calc(100vw - 36px));height:min(760px,calc(100dvh - 36px));padding:14px;color:#f7f0d5;background:#20392f}#world-map::backdrop{background:#10251c99}#world-map canvas{display:block;width:100%;height:calc(100% - 88px);margin-top:12px;touch-action:none;image-rendering:pixelated}#world-map nav{display:flex;gap:6px}#world-map p{font-size:11px;color:#abc89b;line-height:1.6}.game .player-nameplate{pointer-events:none!important}@keyframes world-appear{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media(max-width:600px){#world-minimap{left:15px;top:18px;width:112px}#world-minimap canvas{height:82px}#world-minimap span{font-size:9px}#world-chat{right:18px;top:85px;max-height:60dvh}#world-notices{top:130px;max-width:65vw}.world-player-label span{max-width:170px}#world-map{padding:10px}#world-map nav{gap:4px}#world-map button{padding:7px 10px}}
.game .game-quick-nav{margin-left:auto}

#world-building-names{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:4}#world-building-names[hidden],.building-name-label[hidden]{display:none}.building-name-label{position:absolute;left:0;top:0;box-sizing:border-box;padding:4px 6px;font:600 12px/16px "Microsoft YaHei",sans-serif;white-space:pre;text-align:center;color:#f7f0d5;background:#20392fe8;border-radius:3px;text-shadow:0 1px #10251c;pointer-events:none;will-change:transform}

/* The canvas owns the dialog space; destination actions float at the tap. */
#world-map[open]{display:flex;flex-direction:column;overflow:hidden}
#world-map header{flex-shrink:0;flex-wrap:wrap}
#world-map{inset:16px;box-sizing:border-box;width:min(1400px,calc(100vw - 32px));height:calc(100dvh - 32px);max-width:none;max-height:none;padding:12px}
#world-map .world-map-viewport{position:relative;flex:1;min-height:0;margin-top:8px;overflow:hidden}
#world-map .world-map-viewport canvas{width:100%;height:100%;min-height:0;margin:0}
#world-map .world-map-help{flex-shrink:0;margin:6px 0 0;line-height:1.3}
#world-map .map-destination{position:absolute;z-index:4;transform:translateX(-50%);padding:3px;background:#20392f;border:2px solid #e5cd83;box-shadow:0 3px 8px #10251c66}
#world-map .map-destination[hidden]{display:none}
#world-map .map-destination button{box-sizing:border-box;min-height:36px;min-width:76px;padding:7px 12px;font:600 14px sans-serif;white-space:nowrap}
#world-map .map-destination button:disabled{opacity:.6;cursor:wait}
@media(max-width:600px){#world-map{inset:8px;width:calc(100vw - 16px);height:calc(100dvh - 16px);padding:8px}#world-map header{gap:6px}#world-map header strong{font-size:14px}#world-map .world-map-help{font-size:10px}}

/* One brief new-message highlight, without changing button size or position. */
#world-chat-button.world-chat-arrival{animation:world-chat-arrival .7s ease-out 1}
@keyframes world-chat-arrival{0%,100%{filter:none}25%,60%{background:#f6d46c;color:#20392f;box-shadow:0 0 0 3px #f6d46c}}
@media(prefers-reduced-motion:reduce){#world-chat-button.world-chat-arrival{animation:none;background:#f6d46c;color:#20392f}}
