.profile-module--city .module-content { padding: 0; }
.village-block-image { display: block; width: 100%; height: auto; }
.village-stats { padding: 20px 18px 0; }
.village-level { display: flex; align-items: center; gap: 16px; }
.village-level-number { flex: 0 0 80px; padding: 10px 4px; border: 1px solid var(--line); border-radius: 18px; text-align: center; background: var(--module-surface, var(--surface-soft)); }
.village-level-number span { display: block; color: var(--muted); font-size: .7rem; }
.village-level-number strong { display: block; font-size: 1.7rem; line-height: 1.1; white-space: nowrap; font-variant-numeric: tabular-nums; }
.village-growth { flex: 1; min-width: 0; }
.village-growth p { margin: 0 0 8px; font-size: 1rem; font-weight: bold; line-height: 1.3; }
.village-growth>span { display: flex; justify-content: space-between; align-items: center; gap: 6px; font-size: .75rem; color: var(--muted); }
.village-growth small { font-size: inherit; white-space: nowrap; }
.profile-module .village-growth progress { display: block; appearance: none; height: 5px; margin-top: 8px; border: 0; border-radius: 5px; overflow: hidden; background: var(--line); }
.village-growth progress::-webkit-progress-bar { background: var(--line); }
.village-growth progress::-webkit-progress-value { background: var(--primary); border-radius: 5px; }
.village-growth progress::-moz-progress-bar { background: var(--primary); border-radius: 5px; }
.village-stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 20px 0 0; }
.village-stat-grid>div { display: flex; flex-direction: column; padding: 14px 8px 14px 0; border-top: 1px solid var(--line); min-width: 0; }
.village-stat-grid>div:nth-child(even) { padding-left: 16px; }
.village-stat-grid dt { font-size: .78rem; color: var(--muted); line-height: 1.35; }
.village-stat-grid dt .icon { margin-right: 5px; color: var(--primary); }
.village-stat-grid dd { order: -1; margin: 0 0 5px; font-size: 1.6rem; line-height: 1.1; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.profile-module--city .city-profile-link { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; color: var(--primary); font-weight: normal; padding: 15px 18px; font-size: .9rem; text-decoration: none; border-top: 1px solid var(--line); }
.profile-module--city .city-profile-link:hover { background: var(--module-surface, var(--surface-soft)); text-decoration: underline; }
.profile-module--city.has-custom-colors { --module-surface: var(--surface-soft); }
.village-image-options { padding: 16px; margin-top: 20px; border: 1px solid var(--line); border-radius: 10px; }
.village-image-heading { margin: 0 0 14px; font-weight: bold; }
.village-image-heading>span { font-weight: normal; font-size: .8rem; color: var(--muted); margin-left: 8px; }
.village-image-preview { margin-bottom: 14px; }
.village-image-preview img { display: block; max-width: 100%; max-height: 180px; height: auto; border-radius: 6px; }
.village-image-picker { position: relative; }
.village-image-picker .button { margin: 0; width: fit-content; cursor: pointer; font-size: .9rem; }
.village-image-picker:focus-within .button { outline: 2px solid var(--primary); outline-offset: 3px; }
.village-image-feedback { margin: 8px 0 0; font-size: .85rem; overflow-wrap: anywhere; }
.village-image-feedback:empty { display: none; }
