/* Shared window language. Layout changes stay inside game panels. */
.village-screen{--ui-paper:#f0e5cb;--ui-paper-low:#e4d5b3;--ui-ink:#302a20;--ui-muted:#6d604b;--ui-line:#b49c7180;--ui-header:#293025;--ui-accent:#596347;--ui-gold:#c5ab72}
.village-screen :is(.building-panel,.game-detail-dialog){color:var(--ui-ink);background:linear-gradient(120deg,var(--ui-paper),var(--ui-paper-low));border:1px solid #aa8d59;border-radius:7px;box-shadow:0 18px 65px #0008,inset 0 0 0 3px #fff6;font-family:Georgia,serif}
.village-screen #buildingPanel:not(.world-mode){width:1200px!important;height:780px!important;max-width:calc(100% - 48px)!important;max-height:calc(100% - 64px)!important;padding:0!important;gap:0!important;overflow:hidden!important;grid-template-rows:40px minmax(0,1fr) auto!important}
.village-screen #buildingPanel:not(.world-mode)>.panel-heading{height:40px;min-height:40px;margin:0!important;padding:0 10px 0 16px!important;background:linear-gradient(#3a4131,#252c22)!important;border:0!important;border-bottom:1px solid #bba16b!important;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:5px 5px 0 0}
.village-screen #buildingPanel>.panel-heading h1{font:600 19px Georgia,serif!important;color:#f0dfba!important;margin:0!important;line-height:1.15!important}
.village-screen #buildingPanel>.panel-heading .panel-kicker{display:none!important}
.village-screen .panel-heading-controls,.village-screen .building-design-actions{display:flex;align-items:center;gap:5px;margin:0!important}
.village-screen #buildingPanel .panel-heading :is(.building-design-card,.panel-close){position:relative!important;display:grid!important;place-items:center!important;width:28px!important;min-width:28px!important;height:28px!important;min-height:28px!important;padding:3px!important;margin:0!important;border:1px solid #bba36c66!important;border-radius:4px;background:#ffffff0a!important;box-shadow:none!important;color:#ead7ad!important;filter:none!important}
.village-screen #buildingPanel .panel-heading :is(.building-design-card,.panel-close):hover{background:#ffffff24!important;border-color:#dec78e!important}
.village-screen #buildingPanel .building-design-card svg{width:18px;height:18px}
.village-screen #buildingPanel .panel-title-button{margin:0!important;padding:0!important;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;color:#f0dfba!important;font:600 18px Georgia,serif!important;filter:none!important}
.village-screen #buildingPanel>.building-panel-standard{padding:20px 24px!important;overflow:auto;min-height:0}
.village-screen .building-panel-standard :is(h2,h3){color:var(--ui-ink);line-height:1.2}
.village-screen .building-panel-standard p{font-size:14px;line-height:1.55;color:var(--ui-muted)}
.village-screen #buildingPanel>.building-panel-actions{padding:10px 18px!important;margin:0!important;border-top:1px solid var(--ui-line);background:#f7ecd466;min-height:0}
.village-screen #buildingPanel>.building-panel-actions:has(.building-actions[hidden]){display:none}
.village-screen .city-center-console{padding:0!important;gap:0!important;min-height:0;overflow:hidden}
.village-screen .city-center-tabs{display:flex!important;gap:0!important;padding:0 16px!important;min-height:44px!important;background:#e1d2ae;border-bottom:1px solid var(--ui-line)!important}
.village-screen .city-center-tabs button{flex:none!important;min-width:140px!important;min-height:44px!important;padding:10px 24px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#64533b!important;font:600 14px Georgia,serif!important;filter:none!important}
.village-screen .city-center-tabs button[aria-selected=true]{color:#2f3927!important;box-shadow:inset 0 -3px var(--ui-accent)!important;background:#f5ecd666!important}
.village-screen .city-center-page{padding:16px 22px!important;scrollbar-width:thin;scrollbar-color:#9f895c #dfd1af}
.village-screen .ledger-tabs{display:flex;gap:5px;margin:0 0 10px!important;padding:0!important;min-height:34px}
.village-screen .ledger-tabs button{min-height:34px;padding:7px 17px!important;font-size:13px!important;border-radius:4px!important;box-shadow:none!important}
.village-screen .ledger-tabs button[aria-pressed=true]{background:var(--ui-accent)!important;color:#fff3d6!important;border-color:#49553a!important}
.village-screen .ledger-stocks{display:flex;align-items:center;gap:18px;flex-wrap:wrap;min-height:40px;margin:0 0 12px!important;padding:8px 12px!important;background:#fff8e448!important;border:1px solid var(--ui-line)!important;border-radius:4px;font-size:13px}
.village-screen .ledger-stocks>span:last-child{margin-left:auto;color:var(--ui-muted);font-weight:400}
.village-screen .ledger-summary{margin:0 0 12px!important;padding:8px 12px!important;background:transparent!important;border:0!important;border-left:3px solid var(--ui-accent)!important;font-size:12px;color:var(--ui-muted)}
.village-screen .ledger-table{width:100%;border-collapse:collapse;table-layout:auto;font:13px Georgia,serif}
.village-screen .ledger-table th{padding:10px 12px!important;background:#d8c69d70!important;font:600 11px Arial,sans-serif!important;letter-spacing:.45px;text-transform:uppercase;text-align:left;color:#645237;border-bottom:1px solid var(--ui-line)}
.village-screen .ledger-table td{padding:9px 12px!important;vertical-align:middle!important;border-bottom:1px solid #aa946c33}
.village-screen .ledger-table tbody tr:nth-child(2n){background:#a38a5d0d!important}
.village-screen .ledger-table tbody tr:hover{background:#ffffff3b!important}
.village-screen .ledger-table th:first-child{width:29%}.village-screen .ledger-table th:nth-child(2){width:90px}.village-screen .ledger-table th:nth-last-child(2){width:95px}.village-screen .ledger-table th:last-child{width:180px}
.village-screen .ledger-name{display:flex;align-items:center;gap:12px;min-width:0}
.village-screen .ledger-name>img{width:48px!important;height:52px!important;object-fit:contain;flex:none}
.village-screen .ledger-name b{font-size:14px;color:var(--ui-ink)}
.village-screen .ledger-name small{display:block;margin-top:4px;font-size:12px!important;color:var(--ui-muted)!important;line-height:1.35}
.village-screen .ledger-level{display:inline-block;min-width:48px;text-align:center;font-size:13px!important;line-height:1.4;padding:6px!important;border:1px solid #baa16b;background:#ede0bc!important;box-shadow:none!important;clip-path:none!important;border-radius:3px}
.village-screen .ledger-requirement{display:block;margin:5px 0 0;font:11px/1.35 Arial,sans-serif;color:#80623d;white-space:normal;max-width:180px}
.village-screen .ledger-cost{display:inline-flex;align-items:center;gap:3px;margin:3px 9px 3px 0;font-size:12px;white-space:nowrap}
.village-screen .ledger-cost img{width:25px;height:25px;object-fit:contain}
.village-screen .ledger-table td:last-child{position:static!important}
.village-screen .ledger-table td:last-child>button:not(.ledger-info):not([data-instant-kind]){min-width:108px;min-height:34px;margin:2px 0;font-size:13px!important;box-shadow:none!important}
.village-screen .ledger-table .ledger-info{position:static!important;display:inline-grid!important;place-items:center;vertical-align:middle;width:28px!important;height:28px!important;min-width:28px;min-height:28px;padding:0!important;margin:2px 0 2px 7px!important;box-shadow:none!important;border-radius:50%!important;background:#eee2c1!important;color:#645335!important;border:1px solid #a99362!important}
.village-screen :is(.building-panel,.game-detail-dialog) button:focus-visible{outline:2px solid #5b6945!important;outline-offset:2px}
.village-screen :is(.building-panel,.game-detail-dialog) button:disabled{opacity:.5;cursor:not-allowed;filter:none!important}
.village-screen .game-detail-dialog{width:1020px;max-width:calc(100% - 56px);max-height:calc(100% - 64px);border-radius:7px}
.village-screen .game-detail-dialog>header{height:42px;min-height:42px;padding:0 13px 0 20px;background:linear-gradient(#3a4131,#252c22);color:#f0dfba;border-bottom:1px solid #bba16b}
.village-screen .game-detail-dialog>header h2{font:600 18px Georgia,serif}
.village-screen #detailBody{padding:22px;max-height:670px;overflow:auto;overscroll-behavior:contain}
.village-screen .detail-stats dt{font:12px/1.35 Arial,sans-serif;color:#68563d}.village-screen .detail-stats dd{font-size:18px}
.village-screen :is(.entity-detail,.profile-layout) p{font:14px/1.55 Georgia,serif;color:var(--ui-muted)}
.village-screen .detail-stats{border-color:var(--ui-line);background:#b19a6333;gap:1px}
.village-screen .detail-stats>div{padding:12px;background:#fff7df55}
.village-screen .healer-role-card,.village-screen .production-resource-row,.village-screen .recruit-row{border-color:var(--ui-line)!important;border-radius:5px!important;box-shadow:none!important}
.village-screen .raid-tabs{display:flex;gap:5px;border-bottom:1px solid var(--ui-line);padding-bottom:10px;margin-bottom:14px}
.village-screen .raid-tabs button{min-height:34px;padding:7px 18px;font-size:13px}
.village-screen .raid-unit-grid{gap:8px}.village-screen .raid-unit-chip{padding:8px 10px;background:#fff5da66;border:1px solid var(--ui-line);border-radius:4px}
.village-screen .raid-camp-body{padding:16px!important}.village-screen .raid-camp-heading p{line-height:1.5}
.village-screen .world-mode:not(.world-global-mode):not(.world-battle-mode){width:1160px!important;max-width:calc(100% - 48px)!important;height:780px!important;max-height:calc(100% - 64px)!important;grid-template-rows:42px minmax(0,1fr) auto;padding:0!important;gap:0!important}
.village-screen .world-mode:not(.world-global-mode):not(.world-battle-mode) .world-heading{height:42px;padding:0 12px 0 18px;background:linear-gradient(#3a4131,#252c22);border:0;border-bottom:1px solid #bba16b}
.village-screen .world-mode:not(.world-global-mode):not(.world-battle-mode) .world-heading h1{font:600 18px Georgia,serif;color:#f0dfba;margin:0}
.village-screen .world-mode:not(.world-global-mode) #worldMapKicker{display:none}
.village-screen .world-mode:not(.world-global-mode):not(.world-battle-mode) #worldContent{padding:20px 24px;overflow:auto;min-height:0}
.village-screen .world-mode:not(.world-global-mode):not(.world-battle-mode) .world-footer{padding:8px 20px;border-top:1px solid var(--ui-line);font-size:12px}
.village-screen .world-mode:not(.world-global-mode) #worldHelp{display:none}
.village-screen .world-heading-actions button{min-height:28px;box-shadow:none!important}
.village-screen .world-heading-actions [data-world-tab]{background:#ffffff10;color:#ead7ad;border:1px solid #bba36c66;border-radius:4px;padding:5px 12px;font-size:12px}
.village-screen .world-heading-actions [data-world-tab][hidden]{display:none!important}
.village-screen #worldStatus:empty{display:none}
.village-screen .world-footer:has(#worldStatus:empty){display:none}
@media(prefers-reduced-motion:reduce){.village-screen :is(.building-panel,.game-detail-dialog) *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Explicit source-owned close controls; generic button decoration must not hide them. */
.village-screen .world-heading .panel-close{position:relative!important;display:grid!important;place-items:center!important;width:28px!important;height:28px!important;min-width:28px!important;padding:0!important;margin:0!important;background:#ffffff12!important;color:#f0dfba!important;border:1px solid #c5ab7277!important;border-radius:4px;font:22px Georgia,serif!important;opacity:1!important;box-shadow:none!important;filter:none!important}
.village-screen :is(#cityCenterViewBuildings,#cityCenterViewResearch){gap:8px!important;align-content:start;grid-auto-rows:max-content}
.village-screen :is(#cityCenterViewBuildings,#cityCenterViewResearch)>.ledger-tabs,.village-screen :is(#cityCenterViewBuildings,#cityCenterViewResearch)>.ledger-stocks{margin-bottom:0!important}
.village-screen .mil-empty{padding:28px!important;text-align:center;font:14px/1.6 Georgia,serif;color:#756247}
.village-screen #gameDetailDialog>header{background:linear-gradient(#3a4131,#252c22)!important}.village-screen #gameDetailDialog .detail-stats{display:grid!important;gap:1px!important}.village-screen #gameDetailDialog .detail-stats>div{display:block!important;padding:12px!important;min-width:0}.village-screen #gameDetailDialog .detail-stats dt{font-size:12px!important}.village-screen #gameDetailDialog .detail-stats dd{font-size:18px!important;margin:5px 0 0!important}.village-screen #detailTitle:focus{outline:none}

.village-screen #cityCenterViewResources .resource-card::before{display:none}.village-screen #cityCenterViewResources .reserve-protected{font-size:12px;line-height:1.4;color:#6d604b}

/* The atlas is a viewport surface in either orientation, independent of the village plane. */
html[data-shell-atlas] .village-screen.global-atlas-open{inset:0!important;width:100vw!important;height:100vh!important;min-width:0!important;min-height:0!important;transform:none!important}
html[data-shell-atlas] .village-screen #worldMapPanel.world-global-mode{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;transform:none!important}
.village-screen #buildingPanel.city-center-mode>.panel-heading .city-center-header-pages{display:flex;flex:1 1 auto;align-items:center;justify-content:flex-start;gap:0;min-width:0;height:68px;margin-left:auto;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain}
.village-screen #buildingPanel.city-center-mode>.panel-heading .city-center-header-pages::-webkit-scrollbar{display:none}
.village-screen #buildingPanel.city-center-mode>.panel-heading .city-center-header-pages[hidden]{display:none!important}
.village-screen #buildingPanel.city-center-mode>.panel-heading .city-center-header-pages .city-center-header-tab{position:relative;display:block;box-sizing:border-box;flex:0 0 62px;width:62px;min-width:62px;height:62px;min-height:62px;padding:0;margin:0;border:0;border-radius:4px;background:transparent;color:#fff0c8;cursor:pointer;overflow:hidden;isolation:isolate}
.village-screen #buildingPanel.city-center-mode>.panel-heading .city-center-header-pages .city-center-header-tab::before{content:"";position:absolute;z-index:1;right:2px;bottom:2px;left:2px;height:19px;background:linear-gradient(180deg,transparent,#11150fe8);pointer-events:none}
.village-screen #buildingPanel.city-center-mode>.panel-heading .city-center-header-pages .city-center-header-tab img{position:absolute;inset:6px;width:50px;height:50px;object-fit:contain;filter:drop-shadow(0 2px 2px #000a);transition:filter .16s ease,transform .16s ease}
.village-screen #buildingPanel.city-center-mode>.panel-heading .city-center-header-pages .city-center-header-tab .city-center-tab-label{position:absolute;z-index:2;right:1px;bottom:4px;left:1px;display:block;overflow:hidden;text-align:center;text-overflow:clip;white-space:nowrap;font:700 9px/1 Georgia,serif;letter-spacing:-.12px;color:#fff1ce;-webkit-text-stroke:.45px #17140f;paint-order:stroke fill;text-shadow:0 1px 2px #000;pointer-events:none}
.village-screen #buildingPanel.city-center-mode>.panel-heading .city-center-header-pages .city-center-header-tab:hover img{transform:translateY(-1px);filter:drop-shadow(0 0 4px #f2e3bc) drop-shadow(0 2px 2px #000a)}
.village-screen #buildingPanel.city-center-mode>.panel-heading .city-center-header-pages .city-center-header-tab[aria-selected=true] img{filter:drop-shadow(0 0 4px #f4d68f) drop-shadow(0 2px 2px #000a)}
.village-screen #buildingPanel.city-center-mode>.panel-heading .city-center-header-pages .city-center-header-tab:focus-visible{outline:2px solid #f4dfa9;outline-offset:-3px}
.village-screen #buildingPanel.city-center-mode #cityCenterConsole{grid-template-rows:minmax(0,1fr);gap:0}
@media(max-width:650px){.village-screen #buildingPanel.city-center-mode>.panel-heading .city-center-header-pages .city-center-header-tab{flex-basis:62px;width:62px;min-width:62px}.village-screen #buildingPanel.city-center-mode>.panel-heading .city-center-header-pages .city-center-header-tab .city-center-tab-label{font-size:8px;letter-spacing:-.2px}}
