.outpost-conquest-art { display:block; width:min(70%,240px); max-height:220px; object-fit:contain; margin:12px auto; }
.outpost-summary { border-bottom: 1px solid #9c783d66; padding-bottom: 12px; margin-bottom: 12px; }
.outpost-hero { position:relative; isolation:isolate; display:grid; grid-template-columns: minmax(100px,46%) minmax(0,1fr); align-items:center; gap:8px; min-height:176px; padding:4px 0 10px; }
.outpost-hero::before { content:''; position:absolute; inset:0 -6px; z-index:-1; opacity:.22; background:url('./art-web/battle-panorama-v1-ccf3af94da.webp') center 35%/cover no-repeat; mask-image:linear-gradient(transparent,#000 20%,#000 65%,transparent); pointer-events:none; }
.outpost-hero img { display:block; width:100%; height:180px; object-fit:contain; filter:drop-shadow(0 5px 3px #60401f38); }
.outpost-hero h3 { overflow-wrap:anywhere; margin:4px 0; font:700 24px/1.15 var(--serif); color:var(--antique-ink); }
.outpost-hero p { margin:8px 0 4px; }
.outpost-level { display:inline-block; padding:4px 9px; border:1px solid #9b7b4566; background:#ab803016; font:700 13px/1.3 var(--sans); }
.outpost-benefit { position:relative; isolation:isolate; display:block; margin:2px 0 18px; padding:10px 20px; min-height:44px; color:#fff0c6; text-shadow:0 1px #122116; text-align:center; font:700 18px/1.25 var(--serif); overflow-wrap:anywhere; }
.outpost-benefit::before { content:''; position:absolute; inset:-6px 0; z-index:-1; border:20px solid transparent; border-image:var(--ornate-primary) 40% 13% fill / 20px 22px / 0 stretch; pointer-events:none; }
.outpost-status { display:inline-flex; gap:6px; align-items:center; }
.outpost-status>.icon { width:22px; height:22px; color:var(--green); flex:none; }
.outpost-reward { margin-top:12px; }
.outpost-reward > span { font-size:12px; color:#665133; }
.outpost-reward > div { display:flex; flex-wrap:wrap; gap:8px 12px; margin-top:6px; padding:10px; border:1px solid #9b7b4566; background:#ab803016; }
.outpost-reward-item { display:inline-flex; gap:5px; align-items:center; min-height:36px; }
.outpost-reward-item>:is(.standard-item-art,.icon) { width:32px; height:32px; flex:none; }
.outpost-reward-item strong { font:700 17px/1.25 var(--serif); }
.outpost-bonus-card li { align-items:center; gap:10px; min-width:0; }
.outpost-source-art { display:block; width:60px; height:60px; flex:0 0 60px; }
.outpost-source-art>img { width:100%; height:100%; object-fit:contain; }
.outpost-bonus-card li>span:last-child { min-width:0; overflow-wrap:anywhere; }
.outpost-empty>img { width:min(65%,210px); height:170px; object-fit:contain; margin:0 auto 8px; display:block; }
.military-panel { min-width: 0; }
.military-compose .military-target-preview { margin:0 0 8px; padding:4px 0; }
.military-compose .military-target-preview .military-target-art { width:76px; height:76px; flex-basis:76px; }
.military-compose .military-target-preview h3 { font-size:18px; }
.military-compose .military-cohort { padding:4px 0; }
.military-compose-details { margin:8px 0; }
.military-compose-details>summary,.military-compose .military-selected-levels>summary { min-height:44px; padding:10px 0; font:600 15px var(--serif); }
.troop-composition { margin:8px 0; padding:8px; border:1px solid #9c783d66; background:#ab803016; min-width:0; }
.troop-composition-heading { display:flex; justify-content:space-between; align-items:center; gap:8px; font:600 13px var(--sans); }
.troop-composition-heading label { display:flex; align-items:center; gap:6px; font:11px var(--sans); }
.troop-composition-heading input { width:76px; }
.troop-composition-ratios { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:8px 0; }
.troop-composition-ratios label { min-width:0; font:11px var(--sans); color:var(--antique-muted); }
.troop-composition-ratios label>span { display:flex; align-items:center; gap:4px; }
.troop-composition input,.progression-mode .preset-save-fields input { min-width:0; min-height:44px; height:44px; border:1px solid #a58755; border-radius:2px; padding:6px 8px; background:#efe1bf; color:var(--antique-ink); font:16px var(--sans); box-shadow:inset 0 1px 2px #493a2015; }
.troop-composition-ratios input { width:100%; }
.troop-composition input:focus-visible,.progression-mode .preset-save-fields input:focus-visible { outline:2px solid var(--green); outline-offset:2px; box-shadow:none; }
.troop-composition>.secondary-button { width:100%; margin:0; }
.sheet-content .troop-composition p { margin:6px 0 0; font:11px/1.4 var(--sans); }
.troop-composition [hidden] { display:none; }
.expedition-preparation .expedition-target-summary .panel-scene,.military-compose .military-target-summary .panel-scene { display:grid; grid-template-columns:88px minmax(0,1fr); align-items:center; min-height:0; margin:0 0 8px; }
.expedition-preparation .expedition-target-summary .panel-scene-art,.military-compose .military-target-summary .panel-scene-art { height:80px; min-height:0; }
.expedition-preparation .expedition-target-summary .panel-scene-art>.world-site-sprite { width:110px; height:80px; }
.expedition-preparation .expedition-target-summary .intelligence-site-art { width:80px; height:80px; }
.expedition-preparation .expedition-target-summary .panel-scene-caption,.military-compose .military-target-summary .panel-scene-caption { text-align:left; padding:6px 8px; border:0; background:transparent; }
.expedition-preparation .expedition-target-summary .panel-scene-caption strong,.military-compose .military-target-summary .panel-scene-caption strong { font-size:17px; }
.military-target-summary .panel-scene-art>.military-target-art { align-self:center; }
.military-camp-art { display:grid; place-items:center; position:relative; width:110px; height:80px; flex:none; }
.military-compose .military-camp-art>.world-site-sprite { inset:0; transform:none; width:100%; height:100%; }
.military-camp-art>.icon { width:36px; height:36px; color:var(--antique-gold); }
.site-art-ready .military-camp-art>.icon { visibility:hidden; }
:is(.expedition-preparation,.military-compose) .preset-slot { display:flex; align-items:center; gap:6px; min-height:44px; text-align:left; }
:is(.expedition-preparation,.military-compose) .preset-slot strong { font-size:18px; }
:is(.expedition-preparation,.military-compose) .preset-slot-name { flex:1; min-width:0; }
:is(.expedition-preparation,.military-compose) .expedition-presets { padding:0; }
.expedition-preparation .expedition-row { padding:4px 0; }
.expedition-preparation .expedition-row .expedition-portrait { width:48px; min-width:48px; height:50px; }
.expedition-preparation .expedition-preview-details { margin:8px 0; padding:0; }
.expedition-preparation .expedition-preview-details>summary { min-height:44px; padding:10px 0; font:600 15px var(--serif); }
.expedition-preparation .expedition-preview-summary { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:6px 0; font:13px var(--sans); }
.expedition-preparation .expedition-preview-summary strong { font:700 18px var(--serif); }
.expedition-preparation .expedition-preview-summary.is-defeat { color:#773724; }
.expedition-preparation .expedition-preview-summary.is-victory { color:var(--green); }
@media(max-width:360px){.troop-composition-heading{align-items:flex-start;flex-direction:column}.troop-composition-ratios{gap:6px}.progression-mode .preset-save-fields{grid-template-columns:minmax(0,1fr)}:is(.expedition-preparation,.military-compose) .preset-slot{gap:4px;padding:4px}}
@media(forced-colors:active){.troop-composition,.troop-composition input,.progression-mode .preset-save-fields input{background:Canvas;color:CanvasText;border-color:ButtonText}.troop-composition input:focus-visible,.progression-mode .preset-save-fields input:focus-visible{outline-color:Highlight}}
.military-overview-hero { aspect-ratio:3/1; max-height:170px; margin:-6px -6px 0; pointer-events:none; }
.military-overview-hero>img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 35%; }
.military-panel .list-row, .military-panel .incoming-attack-row { min-width: 0; }
.military-panel .list-row-heading h3 { overflow-wrap: anywhere; }
.military-target-heading { gap:10px; align-items:center; }
.military-target-heading>div { min-width:0; }
.military-target-art { display:block; width:76px; height:76px; flex:0 0 76px; }
.military-target-art>img { width:100%; height:100%; object-fit:contain; }
.military-target-art>:is(.objective-illustration,.building-sprite) { display:block; position:static; inset:auto; float:none; width:100%; height:100%; margin:0; transform:none; background-repeat:no-repeat; }
.military-target-art>.objective-illustration { display:grid; place-items:center; }
.military-target-art .icon { width:36px; height:36px; color:var(--antique-gold); }
.territorial-art-ready .military-target-art>.objective-illustration>.icon { visibility:hidden; }
.military-target-preview { border-bottom:1px solid #9c783d66; padding:8px 0; margin:4px 0 12px; }
.military-target-preview .military-target-art { width:120px; height:120px; flex-basis:120px; }
.military-target-preview h3 { font:700 23px/1.2 var(--serif); }
.military-capacities { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; padding: 12px 8px; border: 1px solid #9c783d66; background:#ab803016; box-shadow:inset 0 0 0 2px #fff2; }
.military-capacities div { display: flex; flex-direction: column; gap: 4px; text-align: center; }
.military-capacities div+div { border-left:1px solid #9c783d44; padding-left:8px; }
.military-capacities small { line-height: 1.25; color: #665133; }
.military-capacities strong { font:700 22px/1.15 var(--serif); color: #31472e; overflow-wrap:anywhere; }
.military-rally-progress { display:block; width:100%; height:7px; margin:2px 0 10px; accent-color:var(--green); }
.military-empty { text-align:center; padding:18px 8px; color:var(--antique-muted); }
.military-empty-portraits { display:flex; justify-content:center; gap:12px; margin-bottom:10px; }
.military-empty-portraits>.report-portrait { width:70px; height:76px; }
.sheet-content .military-empty>p { max-width:340px; margin:0 auto; font:13px/1.5 var(--sans); }
.military-tabs, .military-action-tabs, .military-preparation { display: flex; gap: 4px; margin: 12px 0; }
.military-panel .tabs button { min-width: 0; flex: 1; min-height: 44px; white-space: normal; }
.military-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.military-actions button { flex: 1 1 130px; min-width: 0; }
:is(.military-panel,.alliance-construction-panel) .garrison-troops { display: flex; flex-wrap: wrap; gap: 7px 12px; margin: 10px 0; }
:is(.military-panel,.alliance-construction-panel) .garrison-troops>.military-army-unit { display:inline-flex; align-items:center; gap:7px; min-width:0; }
:is(.military-panel,.alliance-construction-panel) .military-army-unit>.military-unit-portrait { width:40px; height:44px; flex:0 0 40px; }
.military-army-unit>span:last-child { min-width:0; }
.military-army-unit strong,.military-army-unit small { display:block; }
.military-army-unit strong { font:700 15px/1.25 var(--serif); }
.military-army-unit small { margin-top:3px; font:11px/1.3 var(--sans); color:var(--antique-muted); }
.military-panel .metric-line small { display: block; font-weight: normal; }
.military-cohort { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px; }
.military-cohort .unit-label { min-width: 0; }
.military-cohort .unit-label > span:last-child { min-width: 0; }
.military-cohort .unit-label strong, .military-cohort .unit-label small { display: block; overflow-wrap: anywhere; }
.military-cohort .stepper { width: 142px; }
.military-cohort .stepper button { min-height: 44px; min-width: 34px; }
.military-cohort .stepper input { min-width: 0; width: 50px; }
.military-panel .military-quantity-range { grid-column:1/-1; width:100%; min-width:0; }
.military-offer { margin: 12px 0; }
.military-feedback[hidden] { display: none; }
.military-governor-avatar { display:block; flex:0 0 58px; width:58px; height:58px; border:1px solid #a78950; background:#dbcdaf; box-shadow:0 2px 3px #3d2c1b25; overflow:hidden; }
.military-governor-avatar>img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 20%; }
.military-rally-leader { display:flex; align-items:center; gap:12px; margin:14px 0; }
.military-rally-leader>div { min-width:0; }
.military-rally-leader strong,.military-rally-leader small { display:block; overflow-wrap:anywhere; }
.military-rally-leader strong { margin:4px 0; font:700 21px/1.2 var(--serif); color:var(--green); }
.military-rally-leader small { color:var(--antique-muted); }
.military-rally-phase { text-align:center; font:700 17px/1.3 var(--serif); color:var(--green); }
.military-participants,.military-participant-preview { display:grid; gap:8px; margin:10px 0; }
.military-participant { display:flex; align-items:center; gap:10px; width:100%; min-width:0; min-height:76px; padding:8px; text-align:left; border:1px solid #9c783d66; border-radius:2px; color:var(--antique-ink); background:#ab80300e; cursor:pointer; }
.military-participant:hover:not(:disabled) { background:#ab803027; }
.military-participant:focus-visible { outline:3px solid var(--green); outline-offset:2px; }
.military-participant-copy { flex:1; min-width:0; overflow-wrap:anywhere; }
.military-participant-copy>strong { display:block; font:700 17px/1.2 var(--serif); }
.military-participant-copy>small { display:block; margin-top:4px; color:var(--antique-muted); }
.military-participant-tags { display:flex; flex-wrap:wrap; gap:4px; margin-top:3px; }
.military-participant-tags>span { padding:1px 4px; background:#2e56351c; color:var(--green); font:700 10px/1.4 var(--sans); }
.military-participant-count { flex:0 0 auto; font:700 19px/1.2 var(--serif); }
.military-participant.compact { min-height:58px; padding:6px; }
.military-participant.compact .military-governor-avatar { width:42px; height:42px; flex-basis:42px; }
.military-participant.compact .military-participant-copy>strong { font-size:15px; }
.military-own-participation { border-left:3px solid var(--green); }
.military-participant-detail { margin:12px 0; padding:0 0 12px; border-bottom:1px solid #9c783d66; }
@media(max-width:430px) {
 .military-cohort { grid-template-columns: minmax(0,1fr); }
 .military-cohort .stepper { justify-self: end; }
 .military-capacities { gap: 5px; }
 .military-capacities small { font-size: 11px; }
 .military-capacities strong { font-size:20px; }
 .military-target-preview .military-target-art { width:96px; height:96px; flex-basis:96px; }
 .outpost-hero h3 { font-size:22px; }
}
@media(forced-colors:active) {
 .outpost-benefit { color:CanvasText; border:1px solid ButtonText; text-shadow:none; }
 .outpost-benefit::before,.outpost-hero::before { display:none; }
 .military-capacities,.outpost-reward>div,.outpost-level { background:Canvas; color:CanvasText; border-color:ButtonText; box-shadow:none; }
 .military-capacities strong,.military-capacities small { color:CanvasText; }
 .military-participant,.military-governor-avatar { border-color:ButtonText; background:Canvas; color:CanvasText; box-shadow:none; }
 .military-participant-tags>span,.military-rally-phase,.military-rally-leader strong { background:Canvas; color:CanvasText; }
}
.military-flag-garrison .military-participant{display:grid;grid-template-columns:58px minmax(0,1fr) auto;cursor:default}
.military-flag-garrison .military-participant>button{grid-column:1/-1;width:100%;min-width:0;min-height:44px;font-size:17px}
.military-flag-garrison .military-participant-copy .military-army{flex-wrap:wrap}

/* Construction and defense share the rally participant's portrait and paper. */
.military-participant-entry{min-width:0;border:1px solid #9c783d66;border-radius:2px;background:#ab80300e}
.military-participant-entry summary.military-participant{display:grid;grid-template-columns:58px minmax(0,1fr) auto 16px;border:0;background:transparent;cursor:pointer;list-style:none}
.military-participant-entry summary::-webkit-details-marker{display:none}
.military-participant-chevron{display:grid;place-items:center;transition:transform 120ms ease}
.military-participant-chevron>.icon{width:16px;height:16px}
.military-participant-entry details[open] .military-participant-chevron{transform:rotate(90deg)}
.military-participant-entry .garrison-troops{padding:0 8px 8px}
.military-participant-entry>button{width:calc(100% - 16px);min-width:0;margin:0 8px 8px;min-height:44px}
@media(max-width:390px){.military-participant-entry summary.military-participant{grid-template-columns:42px minmax(0,1fr) auto 16px;gap:8px}.military-participant-entry .military-governor-avatar{width:42px;height:42px;flex-basis:42px}}
@media(prefers-reduced-motion:reduce){.military-participant-chevron{transition:none}}
@media(forced-colors:active){.military-participant-entry{background:Canvas;color:CanvasText;border-color:CanvasText}}

.military-flag-garrison .military-garrison-actions{display:grid;gap:4px;margin-top:4px;padding:0 4px}
.military-flag-garrison .military-garrison-actions>button{margin:0;min-height:44px;--button-overhang:-12px}
