/* Warm parchment theme shared by every game screen. */
:root {
  color-scheme: light;
  --ink: #261607;
  --muted: #4e3820;
  --ember: #8e511b;
  --teal: #386b56;
  --line: #bda477;
  --panel: #f4e8ca;
}

body {
  color: var(--ink);
  background: radial-gradient(circle at 50% -12%, #fff8e5 0, #eee0be 46rem, #dfcda7 100%);
}

button, select, input, textarea {
  color: var(--ink);
  border-color: #ab8d60;
}
button { background: linear-gradient(#fff3d3, #ead5a9); }
button:hover:not(:disabled) { border-color: #8b5a2a; }
select, input, textarea { background: #fffaf0; }
select:focus-visible, input:focus-visible, textarea:focus-visible, button:focus-visible {
  outline: 2px solid #a66324;
  outline-offset: 2px;
}

/* The top rail and resource header use the same materials as the Village menu. */
.rail {
  background: linear-gradient(180deg, #f4e5be, #ddc18b);
  border-bottom-color: #9b7541;
  box-shadow: 0 3px 12px #6e4d242e;
}
.rail-brand { border-right-color: #b69a6e; }
.rail-brand .sigil {
  background: linear-gradient(#7c4d27, #4e301b);
  color: #fff0ca;
  box-shadow: inset 0 1px #d9aa6c, 0 2px 5px #6d4c2b52;
}
.rail-brand strong { color: #3d2815; }
.rail-brand small, .rail-foot, .rail-foot small { color: #755b3c; }
.rail-foot { border-left-color: #bea274; }
.rail .nav { color: #4e381d; }
.rail .nav span { color: #8a602d; font-size: 1.2rem; }
.rail .nav:hover:not(:disabled) { background: #fff4d0a8; color: #4c2e10; }
.rail .nav.active {
  background: linear-gradient(#fff3cf, #e8ce97);
  border-color: #b78b4e;
  box-shadow: inset 3px 0 #a86122, 0 1px 3px #7a56242e;
  color: #3b250f;
}
.rail .nav.active span { color: #92571b; }
.bar { border-bottom-color: #bda477; }
.bar h2, .village-heading h1 { color: #392714; }
.eyebrow { color: #9a5119; }
.world-time b { color: #8e511b; }
.world-time small, .notice.good { color: #326f53; }
.notice.error { color: #a73021; }

.resource, .panel, .auth-panel {
  background: linear-gradient(145deg, #fff3d5, #f0dfb9);
  border-color: #c1a575;
  box-shadow: 0 6px 20px #6c4c2724;
  color: var(--ink);
}
.resource span, .resource small { color: #685236; }
.resource strong { color: #5e3515; }
.resource img { width: 36px; height: 36px; filter: drop-shadow(0 1px 1px #74492161); }
.panel-head span, .muted, .resource small, .bar small { color: var(--muted); }
.panel h1, .panel h3, .panel-head h3 { color: #513112; }
.review { background: #f5e8c7; border-left-color: #588366; }
.queue, .movement, .unit-list div { border-color: #d7bf91; }
.building, .village-buildings .building, .village-directory-grid button {
  background: #f9ebca;
  border-color: #c5aa7b;
  color: #3e2b16;
}
.building strong, .building-list-copy strong, .village-directory-grid button strong { color: #633c16; }
.building small, .building-list-copy small, .village-directory-grid button small { color: #766145; }
.village-buildings .building.active { background: #ead09b; border-color: #a87736; }
.building-list-icon, .building-glyph { background: #e7cb92; color: #754717; }
.village-info h3, .village-bottom h3, .village-summary h3,
.village-directory h3, .village-outbound h3, .village-queue .panel-head h3 { color: #5d3918; }
.village-summary small, .village-summary .muted, .village-status-row span,
.village-directory h4 { color: #755d3d; }
.village-summary h4, .village-summary [data-live-due],
.village-outbound [data-live-due], .garrison-list strong { color: #744213; }
.village-summary .job-line, .village-status-row, .garrison-list span { border-color: #d3b988; }
.village-loyalty, .queue-card, .village-queue-compact {
  background: #f7e8c5;
  border-color: #c9ae7c;
  color: #5f4a2e;
}
.village-loyalty strong, .queue-card>strong, .queue-card-top time { color: #4d3218; }
.queue-card-top, .queue-card>small, .queue-empty, .queue-eyebrow { color: #745b3a; }
.queue-track { background: #d5bb87; box-shadow: inset 0 1px 2px #7c5d3344; }
.village-scene-header, .scene-footer {
  background: linear-gradient(#efdaaa, #d2b27a);
  border-color: #a9864f;
  color: #473015;
}
.village-scene-header span, .scene-footer { color: #634b2b; }
.village-scene .scene-building {
  background: #f4dfbbee;
  color: #3c2915;
  border-color: #8d6736;
  box-shadow: 0 3px 8px #33230d80;
}
.village-scene .scene-level { background: #8b5a2a; color: #fff4d9; }
.village-scene .scene-building.is-locked { background: #d8cfb6e8; color: #635a49; }

/* Village building dialogs, recruitment and simulator. */
#building-dialog {
  background: #f5e8c7;
  color: #372717;
  border-color: #9c743e;
  box-shadow: 0 22px 65px #35250f80;
}
.building-dialog-top { background: linear-gradient(#ebd09b, #d5ad70); border-color: #a17d47; }
.building-dialog-top h2, .building-dialog-top small, .dialog-close { color: #3b260f; }
.building-dialog-body>p, .building-action p, .building-action h3,
.building-form label, .building-time, .building-hint { color: #5d482d; }
.building-effect, .building-table-row, .unit-rule, .simulator-result {
  background: #fff1d2;
  border-color: #c9aa74;
  color: #3e2d18;
}
.building-effect { border-left-color: #ab7130; }
.building-action { border-color: #cfb484; }
.building-action h3, .building-table-row strong, .building-row-name strong,
.unit-rule strong, .simulator-result h4 { color: #613a14; }
.building-table-row small, .row-requirements, .unit-rule small,
.building-row-name small, .row-cost small { color: #735c3d; }
.building-table h4, .simulator-table thead { background: #d7b77c; color: #3a250d; }
.upgrade-cost span, .simulator-heading label, .simulator-assumptions { color: #261605; font-weight: 600; }
.simulator-table-wrap, .simulator-table td, .simulator-table th { border-color: #d0b889; }
.simulator-table tbody th { color: #603814; }
.simulator-table tbody tr:nth-child(even) { background: #f1dfb7; }
.simulator-totals span { background: #f6e7c3; border-color: #c9ac78; color: #5a472e; }
.simulator-totals strong { color: #53300e; }

/* Map chrome stays light while the playing field keeps its terrain colors. */
.map-panel, .map-top, .map-sidebar .panel, .village-card, .map-sidebar .mini-map {
  background: #f3e5c4;
  border-color: #bea171;
  color: #382716;
}
.map-top { background: linear-gradient(#f3e4be, #e1c58f); }
.map-tabs { background: #ead3a1; border-color: #aa8b58; }
.map-tabs button { color: #50371b; }
.map-tabs button.active { background: #fff1d0; color: #70400f; }
.map-panel .map-legend { background: #e5cf9f; color: #4a3217; }
.map-panel .map-legend span { color: #5a4527; }
.map-panel .map-legend em, .target-facts { color: #715c3e; }
.map-sidebar .mini-map strong, .map-controls strong { color: #844a15; }
.mini-grid { border: 1px solid #a48758; }
.composer .march-units label, .composer-unit-line { color: #402c17 !important; border-color: #d2ba8e !important; }
.composer-unit-line span { color: #402c17; }
.composer-unit-line span small, .march-units small { color: #6f6049; }
.map-controls { background: #f4e4c2; border-color: #9c7d4c; }
.map-controls button { background: #fff2d4; }

/* Reports and their detail screens. */
.reports-sidebar, .reports-main-panel, .reports-top-bar, .report-detail-panel,
.detail-header-card, .participant-box, .combat-factors-box, .loot-box,
.damage-box, .loyalty-box, .scouting-intel-box {
  background: #f7e9c9;
  border-color: #c2a578;
  color: #392816;
}
.reports-sidebar h3, .reports-table th, .detail-subject-line,
.damage-box h4, .loyalty-box h4 { color: #563415; }
.rep-nav-btn, .reports-search-box label, .detail-time-line, .participant-origin span,
.morale-widget, .luck-header, .loot-header, .loot-items span { color: #5f4c32; }
.rep-nav-btn:hover, .reports-table tbody tr.report-row:hover { background: #f2dfb5; color: #3c2915; }
.rep-nav-btn.active, .classic-filter-pill.active {
  background: #e9cc91;
  color: #4d2b0f;
  border-color: #b58845;
}
.rep-badge { background: #e7d2a9; color: #5d4930; }
.reports-table th, .troop-roster-table thead, .label-col, .row-label {
  background: #ddc28c;
  border-color: #b89a67;
  color: #412a12;
}
.reports-table td, .troop-roster-table th, .troop-roster-table td {
  color: #3d2b17;
  border-color: #d4bd90;
}
.report-subject-link, .rep-action-link, .participant-role { color: #824b19 !important; }
.report-subject-link:hover, .rep-action-link:hover { color: #a65c1a !important; }
.losses-row td { background: #f8e3d6; }
.active-val { color: #1a0f00 !important; font-weight: 700 !important; font-size: .84rem; }
.loss-val { color: #a62c20 !important; background: #f5d9cc !important; font-weight: 700 !important; }
.zero-val { color: #887c69 !important; font-size: .75rem; }

/* Troop Input Spinners & Clean Typing */
input.rp-unit-input::-webkit-outer-spin-button,
input.rp-unit-input::-webkit-inner-spin-button,
input[data-march-unit]::-webkit-outer-spin-button,
input[data-march-unit]::-webkit-inner-spin-button,
.march-units input::-webkit-outer-spin-button,
.march-units input::-webkit-inner-spin-button,
.rp-unit-inputs input::-webkit-outer-spin-button,
.rp-unit-inputs input::-webkit-inner-spin-button,
.troop-input-clean::-webkit-outer-spin-button,
.troop-input-clean::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input.rp-unit-input,
input[data-march-unit],
.march-units input[type="number"],
.rp-unit-inputs input[type="number"],
.troop-input-clean {
  -moz-appearance: textfield;
  appearance: textfield;
}

/* Support & Reports Alert Badges */
.top-support-alert-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: linear-gradient(180deg, #1c527d, #0f304d) !important;
  border: 1px solid #4da3ff !important;
  color: #fff !important;
  padding: 4px 9px !important;
  border-radius: 4px;
  cursor: pointer;
  box-shadow: 0 0 8px #2b7bc488;
}
.top-support-alert-btn strong { font-size: 12px; }
.top-support-alert-btn .support-shield { font-size: 14px; }

.top-reports-alert-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #fcf6e8 !important;
  border: 1px solid #cbb28b !important;
  color: #4c3217 !important;
  padding: 3px 8px !important;
  border-radius: 4px;
  cursor: pointer;
  font-size: 13px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  transition: background 0.15s, border-color 0.15s;
}
.top-reports-alert-btn:hover {
  background: #f3e7cb !important;
  border-color: #b0966a !important;
}
.top-reports-alert-btn.has-unread {
  background: #fff8ec !important;
  border: 1px solid #c9a464 !important;
  color: #3b230b !important;
}
.top-reports-alert-btn strong {
  font-size: 12px;
  color: #a82e20 !important;
  font-weight: 700;
}
.top-reports-alert-btn .rep-icon {
  font-size: 14px;
}

.rep-badge-alert {
  background: #c24332;
  color: #fff;
  border-radius: 9px;
  padding: 1px 6px;
  font-size: 11px;
  font-weight: 700;
  margin-left: 6px;
  line-height: 1.2;
  display: inline-block;
}
.unread-glow {
  color: #c24332;
  font-size: 9px;
  display: inline-block;
  margin-right: 5px;
  vertical-align: middle;
}
.report-row.is-unread {
  background: #fbf5e6 !important;
  font-weight: 600;
}
.report-row.is-unread:hover {
  background: #f5edd7 !important;
}
.report-subject-link.unread-subject {
  font-weight: 700 !important;
  color: #1a0f00 !important;
}
.detail-time-line time, .morale-widget strong, .loot-capacity { color: #76471b; }
.scouting-intel-box h4, .intel-resources, .intel-buildings strong { color: #315b61; }
.intel-bldg-badge { background: #e3ece5; border-color: #a6bbb4; color: #305459; }
.winner-title.attacker-won { background: #d9e7cb; color: #365c2f; }
.winner-title.defender-won { background: #f2d7c9; color: #783d2e; }

/* Overviews and Rally Point share the parchment tables and cards. */
.ov-header-panel, .ov-content-card, .ov-empty-card, .ov-group-card,
.ov-placeholder-card, .rp-building-desc, .rp-units-columns,
.rp-destination-box, .rp-actions-box, .rp-templates-box,
.rp-confirmation-card, .rp-troops-card, .rp-troop-badge,
.rp-support-abroad-item, .rp-nearby-row, .rp-placeholder-card,
.rp-active-movements, .rp-unit-column, .rp-quick-targets {
  background: #f8ebce;
  border-color: #c6aa79;
  color: #3d2c18;
}
.ov-title-group h2, .ov-table-controls h3, .ov-empty-card h4,
.ov-group-card h4, .ov-placeholder-card h3, .rp-section-header h3,
.rp-unit-column h4, .rp-templates-box h4, .rp-box-title,
.rp-troops-card h4, .rp-troop-info strong, .rp-nearby-info strong,
.rp-placeholder-card h3 { color: #5e3816; }
.ov-title-group small, .ov-table-hint, .ov-empty-card p, .ov-group-card p,
.ov-placeholder-card p, .rp-building-desc, .rp-troop-info span,
.rp-nearby-info small, .rp-placeholder-card p { color: #715b3e; }
.ov-tabs-bar, .rp-tabs-bar { background: #e7d0a0; border-color: #b58d55; }
.ov-tab-btn, .rp-tab-btn {
  background: #f4e4c0;
  border-color: #bea06c;
  color: #5b3b19;
}
.ov-tab-btn:hover, .rp-tab-btn:hover { background: #fff3d8; color: #4a2c0f; }
.ov-tab-btn.active, .rp-tab-btn.active {
  background: #fff1cb;
  border-color: #a66f30;
  color: #4a2a0b;
}
.ov-table thead, .rp-movements-table thead, .rp-conf-table thead {
  background: #ddc28c;
  color: #3c2813;
}
.ov-table th, .ov-table td, .rp-movements-table th, .rp-movements-table td { border-color: #d0b585; }
.ov-table tbody tr:hover, .rp-movements-table tbody tr:hover { background: #f0dcb1; }
.ov-table tbody tr.is-active-hearth { background: #f2ddb1; }
.ov-select-village-btn, .tw-village-link, .tw-inline-village-link { color: #85470f !important; }
.ov-select-village-btn:hover, .tw-village-link:hover, .tw-inline-village-link:hover { color: #a65e1b !important; }
.ov-select-village-btn small, .ov-queue-item { color: #735b3a; }
.ov-mini-troop, .ov-storage-bar-wrap, .rp-mvt-unit-badge,
.rp-quick-tag, .rp-unit-input { background: #f4e3bf; border-color: #c9ad7d; color: #432f17; }
.rp-unit-avail, .rp-abroad-desc span, .rp-nearby-info span { color: #79502a; }
.rp-troop-badge.is-foreign { background: #e5e5d3; border-color: #a5ada0; }
.rp-notice-bar { background: #f4ded2; color: #7c3925; }
.rp-template-btn, .rp-btn-back, .rp-conf-note, .rp-catapult-select,
.rp-target-field { background: #fff4d8; border-color: #c6a672; color: #483015; }
.rp-template-btn:hover, .rp-btn-back:hover, .rp-quick-tag:hover { background: #f1dbaa; }
.rp-status-tag.outbound { background: #f2ddb2; color: #744619; }
.rp-status-tag.returning { background: #dfebd7; color: #385f3c; }
.rp-incoming-alert-box { background: #f6dfd7 !important; border-color: #ba7567 !important; }
.rp-alert-title { color: #a93524 !important; }
.rp-support-incoming-box { background: #e3edf0 !important; border-color: #8eaebf !important; }
.rp-support-title { color: #32617c !important; }
.rp-countdown-tag, .live-vi-countdown { color: #855009; }
.search-input-group input, .ranking-search-box input { background: #fff9e9; color: #392717; border-color: #ac9167; }
.classic-filter-pill, .classic-filter-pill:hover {
  background: #f2e2bd;
  border-color: #c1a474;
  color: #553a1b;
}
.ov-table-totals-row { background: #e8d4a8; }
.ov-table-incomings tr.is-incoming-attack-row { background: #fae2d9; }
.ov-table-incomings tr.is-incoming-support-row { background: #e4ece7; }
.ov-btn-action, .tw-map-center-btn, .tw-goto-village-btn,
.tw-send-troops-btn { background: #f7e5c0 !important; border-color: #b99865 !important; color: #694019 !important; }
.ov-dropdown-popup { background: #f5e7c7; border-color: #a87d48; }
.ov-drop-item { color: #4a3018 !important; border-bottom-color: #d6bc8c !important; }
.ov-drop-item:hover { background: #ead2a4 !important; color: #36220e !important; }

/* Village information, rankings, profiles, and map actions. */
.vi-card, .ranking-table-card, .profile-card, .map-context-menu {
  background: #f8ebce;
  border-color: #bea173;
  color: #3d2b17;
}
.vi-card-head, .profile-card-head, .mcm-head, .ranking-table th,
.vi-commands-table th { background: #dfc48e; border-color: #b89b69; color: #422b13; }
.vi-title, .vi-card-head h2, .vi-card-head h3, .profile-card-head h2,
.ranking-title-group h1, .profile-top-bar h1, .vi-actions-list h3,
.mcm-name { color: #593615; }
.vi-spec-label, .vi-radar-caption, .prof-stat-row span, .mcm-coords { color: #725b3d; }
.vi-spec-value, .vi-notes-text, .prof-stat-row strong,
.vi-commands-table td, .ranking-table td { color: #3d2b17; }
.vi-spec-value.vi-is-own { color: #28628b; }
.vi-radar-wrap { background: #eadbb8; border-color: #bea577; }
.vi-radar-viewport { background: #628049; box-shadow: inset 0 0 10px #31442566; }
.vi-action-btn, .vi-btn-small, .mcm-action-btn,
.rank-refresh-btn, .ranking-tab-btn {
  background: #f5e4c0;
  border-color: #bda070;
  color: #4d3419;
}
.vi-action-btn:hover, .vi-btn-small:hover, .mcm-action-btn:hover,
.rank-refresh-btn:hover, .ranking-tab-btn:hover { background: #fff2d5; color: #432b12; }
.vi-action-btn.primary, .mcm-action-btn.primary, .ranking-tab-btn.active {
  background: #e4c78f;
  border-color: #a98147;
  color: #3d290e;
}
.vi-notes-editor textarea { background: #fff8e8; border-color: #bba077; color: #382716; }
.vi-commands-table td, .ranking-table td, .prof-stat-row { border-color: #d4ba8c; }
.vi-commands-table tr:hover td, .ranking-table tr:hover td { background: #f1dcb3; }
.vi-commands-table .tw-cmd-detail-link, .rp-movements-table .tw-cmd-detail-link,
.profile-card .tw-cmd-detail-link { color: #784313; }
.ranking-tabs-bar { border-color: #aa8248; }
.ranking-table th { color: #422b13; }
.col-rank { color: #6c4118 !important; }

/* Authentication follows the same light palette. */
.auth-panel { background: #f5e8c8; border-color: #ab8c5a; }
.auth-panel label, .auth-panel #recover p { color: #614e35; }

/* Transparent troop art, modestly larger throughout the game. */
img[src^="/assets/units/"] {
  object-fit: contain;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  filter: drop-shadow(0 1px 1px #59402580);
}
.unit-icon { width: 28px; height: 28px; }
.unit-icon-sm { width: 24px; height: 24px; }
.unit-icon-table { width: 34px; height: 34px; }
.unit-icon-micro { width: 19px; height: 19px; }
.rp-unit-icon { width: 27px; height: 27px; }
.tw-cmd-unit-pill img, .tw-cmd-tooltip-table th img,
.tw-cmd-full-table th.tw-th-troop img, .ci-troops-table th img {
  width: 27px;
  height: 27px;
}
/* The map hover popup has its own established icon size. */
.map-hover .unit-icon-micro { width: 24px; height: 24px; }

/* Enhanced text contrast and readable dark tones */
.upgrade-cost span {
  color: #261605 !important;
  font-weight: 700 !important;
}
.rp-unit-avail {
  color: #2d1806 !important;
  font-weight: 700 !important;
  cursor: pointer !important;
}
.rp-unit-avail:hover {
  color: #8c4207 !important;
  text-decoration: underline !important;
}
.rp-unit-input, .tw-recruit-input {
  color: #1a0f04 !important;
  font-weight: 700 !important;
}
.tw-bldg-level {
  color: #2e1a06 !important;
  font-weight: 700 !important;
}
.tw-bldg-hint {
  color: #4a3217 !important;
  font-weight: 600 !important;
}
.tw-bldg-maxed {
  color: #452b12 !important;
  font-weight: 600 !important;
  font-style: normal !important;
}
.tw-bldg-costs, .tw-bldg-pop, .tw-bldg-duration {
  color: #281707 !important;
}
.tw-bldg-pop {
  font-weight: 700 !important;
}
.tw-bldg-duration {
  font-weight: 600 !important;
}
.tw-build-btn:disabled {
  background: #bfb2a0 !important;
  border-color: #8f806e !important;
  color: #3d2a16 !important;
  font-weight: 700 !important;
}
.muted, .target-facts, .scene-footer span {
  color: #4a3319 !important;
  font-weight: 500;
}


/* Tribal Wars HQ Modal Light Theme Enhancements */
#building-dialog.tw-hq-dialog,
#building-dialog.tw-bldg-dialog {
  background: #f4e6c9 !important;
  border: 1px solid #7d5727 !important;
  box-shadow: 0 12px 35px rgba(40, 20, 5, 0.45) !important;
}

.tw-hq-table {
  color: #2b1807 !important;
}

.col-hq-bldg strong {
  color: #2b1807 !important;
}

.col-hq-bldg .tw-bldg-level {
  color: #3d250d !important;
  font-weight: 700 !important;
}

.res-cost-item {
  color: #2b1807 !important;
  font-weight: 700 !important;
}

.res-cost-item.cost-short,
.hq-pop-pill.cost-short {
  color: #ab1f11 !important;
  font-weight: 800 !important;
}

.hq-dur-pill {
  color: #2b1807 !important;
  font-weight: 700 !important;
}

.hq-pop-pill {
  color: #2b1807 !important;
  font-weight: 700 !important;
}

.col-hq-maxed-text {
  color: #5d4223 !important;
  font-weight: 700 !important;
}

.hq-req-badge {
  background: #fff8ec !important;
  border-color: #c4a56a !important;
  color: #2b1807 !important;
  font-weight: 700 !important;
}

.hq-req-badge.req-missing {
  background: #fdf2f0 !important;
  border-color: #df978e !important;
  color: #9c2718 !important;
}

.hq-req-badge.req-met {
  background: #f0f7f0 !important;
  border-color: #9cc89c !important;
  color: #1b6320 !important;
}

.tw-hq-rename-card {
  background: #f0e1c3 !important;
  border-color: #bda066 !important;
}

.tw-hq-rename-head h3 {
  color: #2b1807 !important;
}

.tw-hq-rename-input {
  background: #fffefb !important;
  border-color: #9c7b44 !important;
  color: #1c0e03 !important;
  font-weight: 700 !important;
}
