/* Compact, window-sized strategy board. Long catalogues use selectors and pages. */
/* Stock amounts and net rates remain visible at every window size. */
.frontier-window{height:min(620px,calc(100dvh - 68px));min-width:320px}.frontier-window .window-body{padding:0!important;overflow:hidden!important;display:flex;min-height:0}.frontier-window [data-frontier-mount]{flex:1;min-width:0;min-height:0}.frontier-app{box-sizing:border-box;height:100%;min-height:0;display:flex;flex-direction:column;position:relative;overflow:hidden;container-type:inline-size;background:#e4dfcb;color:#263b3c;font:11px/1.3 Verdana,sans-serif;padding:6px}.frontier-app [hidden]{display:none!important}.frontier-app button{font:inherit;cursor:pointer;padding:4px 6px;color:#213d3c;background:#f4f0de;border:1px solid #87947c;border-radius:2px;box-shadow:0 1px #bdbea7}.frontier-app button:hover:not(:disabled){background:#fff9df;border-color:#314f43}.frontier-app button:focus-visible,.frontier-app select:focus-visible,.frontier-app svg:focus-visible{outline:2px solid #ae691d;outline-offset:1px}.frontier-app button:disabled{opacity:.48;cursor:default}.frontier-app button[aria-pressed=true],.frontier-app button[aria-pressed=true]:hover:not(:disabled){background:#31554d;color:#fff5dc}.ft-banner{display:flex;flex:none;align-items:center;gap:10px;border-bottom:1px solid #849582;padding:2px 2px 5px}.ft-banner h2{font:700 21px/1 Georgia,serif;letter-spacing:3px;margin:0;color:#294944}.ft-banner small{display:none}.ft-turn{margin-left:auto;font:10px monospace;white-space:nowrap}.frontier-app [data-ft=end]{background:#31554d;color:#fff5dc;font-weight:bold;padding:6px 9px}.ft-resources{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;flex:none;border-bottom:1px solid #a5ad96;padding:4px 0}.ft-resources>div{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:0 5px;border-right:1px solid #b9bea8;padding:0 5px;min-width:0}.ft-resources small{grid-column:1/-1;text-transform:uppercase;font-size:8px;letter-spacing:.5px}.ft-resources b{font:17px/1.1 Georgia,serif;white-space:nowrap}.ft-resources span{font-size:9px;color:#546657;white-space:nowrap}.ft-resources .ft-danger,.ft-resources .ft-danger span{color:#a33524}.ft-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:6px;flex:1;min-height:0;margin-top:4px}.ft-world{min-width:0;min-height:0;display:flex;flex-direction:column}.ft-map-tools{display:flex;flex:none;gap:3px;align-items:center;flex-wrap:wrap;margin-bottom:4px}.ft-map-tools button{font-size:10px;padding:3px 5px}.ft-viewport{margin-left:auto;font:9px monospace}.ft-map-scroll{display:flex;align-items:center;justify-content:center;background:#202e37;border:2px solid #354b46;overflow:hidden;flex:1;min-height:0;min-width:0}.frontier-app .ft-map{display:block;width:100%;height:100%;min-width:0;touch-action:manipulation;cursor:crosshair}.ft-quick-tile{font-size:9px;margin-top:3px;min-height:24px;max-height:26px;overflow:hidden}.ft-map-caption{display:none}.ft-message{flex:none;background:#f3efd9;border-left:3px solid #526e57;padding:4px 6px;margin:3px 0 0;font-size:10px;min-height:25px;max-height:29px;overflow:hidden}.ft-council{display:flex;flex-direction:column;min-height:0;min-width:0;border-left:1px solid #a5ad96;padding-left:6px}.ft-council nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;flex:none;margin-bottom:4px}.ft-council nav button{font-size:9px;padding:4px 1px;min-width:0;letter-spacing:-.2px}.ft-panel,.ft-inspector,.ft-overview{min-height:0;flex:1;overflow:auto;scrollbar-width:none;overscroll-behavior:contain}.ft-panel::-webkit-scrollbar,.ft-inspector::-webkit-scrollbar,.ft-overview::-webkit-scrollbar{display:none}.frontier-app h3{font:700 12px/1.3 Georgia,serif;letter-spacing:.4px;margin:2px 0 5px}.frontier-app h4{font-size:11px;margin:5px 0 3px}.ft-panel p,.ft-inspector p{font-size:10px;margin:5px 0}.frontier-app label{display:block;font-size:9px;margin:3px 0}.frontier-app select,.frontier-app input{box-sizing:border-box;width:100%;max-width:100%;min-width:0;font:10px Verdana,sans-serif;padding:4px;background:#f6f1df;color:#263b3c;border:1px solid #87947c}.ft-panel small,.ft-inspector small{display:block;font-size:9px;line-height:1.35}.ft-muted{color:#65705f;font-size:9px}.ft-compact-card{margin:5px 0;padding:6px;border:1px solid #a5ad96;background:#f3eedb}.ft-compact-card>button{width:100%;margin-top:5px}.ft-compact-card small{margin:3px 0}.ft-compact-card b{font:700 12px Georgia,serif}.ft-subtabs,.ft-actions,.ft-unit-list{display:flex;flex-wrap:wrap;gap:3px;margin:4px 0}.ft-subtabs button,.ft-actions button{font-size:10px;padding:4px 5px}.ft-subtabs button:disabled{opacity:1;background:#31554d;color:#fff5dc}.ft-unit-list button{font-size:9px;padding:3px 4px}.ft-unit-detail{border-top:1px solid #b9bea8;padding-top:4px;margin-top:4px;font-size:10px}.ft-tile-stats{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:5px 0}.ft-tile-stats div{min-width:0}.ft-tile-stats dt{font-size:8px;text-transform:uppercase;color:#65705f}.ft-tile-stats dd{font-size:10px;margin:0;overflow-wrap:anywhere}.ft-tile-card h3 small{display:inline;font:9px Verdana,sans-serif}.ft-terrain-rules{font-size:9px;line-height:1.3;padding-left:13px;margin:4px 0}.ft-battle-preview{background:#eee5cb;padding:4px;margin-top:4px}.ft-research-lock{color:#904f30}.ft-research-queue{border:1px solid #87947c;background:#f3eedb;padding:5px;margin-top:5px}.ft-research-queue ol{padding-left:17px;margin:3px 0}.ft-research-queue li{font-size:10px;margin:3px 0}.ft-research-queue li span{display:inline-flex;gap:2px;margin-left:4px}.ft-research-queue li button{font-size:9px;padding:1px 5px}.ft-research-queue .ft-actions{margin:3px 0}.ft-stock{border-bottom:1px solid #b9bea8;padding:5px 0}.ft-stock small{margin:2px 0}.ft-log{font-size:10px;margin:5px 0;padding-left:18px}.ft-log li{margin:7px 0}.ft-surrender{padding:5px;border:1px solid #8c6d35;background:#fff1bd}.ft-overview .ft-minimap{display:block;width:100%;height:auto;max-height:calc(100% - 50px);aspect-ratio:1;background:#202e37;border:1px solid #849582;cursor:crosshair}.ft-overview p{font-size:10px}.frontier-app footer{display:flex;align-items:center;gap:7px;flex:none;border-top:1px solid #a5ad96;padding-top:4px;margin-top:4px;min-height:21px}.frontier-app footer>small{font-size:9px;flex:1}.frontier-app footer button{font-size:9px;padding:3px 5px}.ft-save{font-size:8px;color:#65705f}.ft-setup{position:absolute;z-index:10;top:45px;left:50%;transform:translateX(-50%);box-sizing:border-box;width:min(550px,calc(100% - 20px));max-height:calc(100% - 60px);overflow:auto;border:1px solid #87947c;background:#f2ecd7;padding:10px;box-shadow:0 5px 25px #16242c80}.ft-setup-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.ft-world-limit,.ft-setup p{font-size:10px;margin:5px 0}.ft-town-border{pointer-events:none}@container(max-width:740px){.ft-layout{grid-template-columns:minmax(0,1fr) 265px}.ft-resources b{font-size:15px}.ft-resources span{font-size:8px}.frontier-app footer>small{display:none}}@container(max-width:550px){.ft-layout{grid-template-columns:minmax(0,1fr) 215px}.ft-council nav{grid-template-columns:repeat(3,minmax(0,1fr))}.ft-resources span{display:none}.ft-resources b{font-size:14px}.ft-turn{font-size:8px}.ft-banner h2{font-size:18px}.ft-map-tools button{padding:2px 4px}.ft-viewport{width:100%;margin:0}.ft-save{margin-left:auto}.ft-panel small,.ft-inspector small,.ft-terrain-rules{font-size:8px}}

.ft-name-error:empty{display:none}.ft-name-error{color:#a33524}

.ft-production{padding:4px 0}.ft-production ol{padding-left:18px;margin:6px 0}.ft-production li{margin-bottom:8px}.ft-production progress{display:block;width:100%;height:7px;accent-color:#31554d;margin:3px 0}

.frontier-app [data-ft=end]:hover:not(:disabled){background:#3c685d;color:#fff5dc}

.ft-upgrades{flex-basis:100%;border:1px solid #a5ad96;padding:4px}.ft-upgrades summary{cursor:pointer;font-weight:bold}.ft-upgrades button{margin:4px 0}.ft-panel .ft-danger{color:#a33524}

.frontier-app .ft-resources{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;padding:5px 0}
.frontier-app .ft-resources>.ft-resource-card,.frontier-app .ft-resources>.ft-stockpile-link{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:6px 8px;border:1px solid #b1b99f;border-radius:3px;background:#f3efdd;text-align:left;box-shadow:none}
.frontier-app .ft-resources small{font-size:9px;letter-spacing:.6px;color:#455d50}
.frontier-app .ft-resources b{font:700 20px/1.1 Georgia,serif;font-variant-numeric:tabular-nums;white-space:normal;overflow-wrap:anywhere}
.frontier-app .ft-resources span{display:block;font-size:9px;line-height:1.3;white-space:normal}
.frontier-app .ft-resources .ft-resource-rate{font-weight:bold;color:#31594b}
.frontier-app .ft-resources .ft-resource-note{font-size:8px;color:#65705f}
.frontier-app .ft-resources .ft-danger{border-color:#b97c5a;background:#f8e9d5}
.frontier-app .ft-resources .ft-danger .ft-resource-rate{color:#a33524}
.frontier-app .ft-resources .ft-stockpile-link{justify-content:center;background:#e6ebd8;border-color:#87947c}
.frontier-app .ft-resources .ft-stockpile-link b{font-size:16px}
.frontier-app .ft-resources .ft-stockpile-link:hover{background:#f8f5df}
.ft-stock-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:4px 0 9px}
.ft-stock-grid .ft-stock{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:3px;border:1px solid #b1b99f;background:#f3efdd;padding:6px;min-width:0}
.ft-stock-grid .ft-stock b{font-size:10px;overflow-wrap:anywhere}
.ft-stock-grid .ft-stock strong{font:700 18px/1.1 Georgia,serif;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.ft-stock-grid .ft-stock small{grid-column:1/-1;font-size:8px;margin:0}
.ft-stock-grid .ft-stock-locked{background:#e3e2d2;color:#687361}
.ft-stock-rules{padding-top:6px;border-top:1px solid #a5ad96}
@container(max-width:550px){.frontier-app .ft-resources{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.frontier-app .ft-resources>.ft-resource-card,.frontier-app .ft-resources>.ft-stockpile-link{padding:4px 6px}.frontier-app .ft-resources b{font-size:17px}}

.frontier-app .ft-resources .ft-stockpile-link[aria-pressed=true] small,.frontier-app .ft-resources .ft-stockpile-link[aria-pressed=true] span{color:#fff5dc}
.ft-panel:has(.ft-stock-grid){scrollbar-width:thin}.ft-panel:has(.ft-stock-grid)::-webkit-scrollbar{display:block;width:6px}

/* Informative, replay-only combat exchanges. The engine has already resolved and saved them. */
.ft-combat-modal{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:10px;background:#13252ad9;box-sizing:border-box}
.ft-combat-window{width:min(540px,100%);max-height:100%;overflow:auto;background:#eee7cf;border:2px solid #a8b18f;box-shadow:0 12px 36px #09171bb3;color:#263b3c;border-radius:5px}
.ft-combat-window>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;background:#294b45;color:#fff2cb}
.ft-combat-window>header small{font-size:8px;letter-spacing:1px;color:#cfddbe}.ft-combat-window>header h3{font:700 19px/1.2 Georgia,serif;margin:3px 0;color:#fff2cb}
.ft-combat-names{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:9px 15px;background:#f5efd9}
.ft-combat-names>div:last-child{text-align:right}.ft-combat-names small{display:block;font-size:8px;letter-spacing:.5px;color:#5b6b57}.ft-combat-names b{display:block;font:700 14px/1.2 Georgia,serif;margin-top:3px}
.ft-combat-stage{height:145px;display:flex;align-items:flex-end;justify-content:space-around;position:relative;overflow:hidden;background:linear-gradient(#9eb6b7 0%,#dce0c1 55%,#788f52 56%,#4c6946 100%);border-block:1px solid #7b8e71}
.ft-combat-stage:before{content:"";position:absolute;inset:25% -15% 18%;border-radius:50%;background:#688d7770;transform:rotate(-4deg)}
.ft-combat-stage[data-terrain=forest],.ft-combat-stage[data-terrain=jungle],.ft-combat-stage[data-terrain=taiga]{background:linear-gradient(#476c65,#819e77 54%,#3b5940 55%,#283f36)}
.ft-combat-stage[data-terrain=water],.ft-combat-stage[data-terrain=lake]{background:linear-gradient(#94b6c2,#d6e3dc 54%,#547e93 55%,#2e5269)}
.ft-combat-stage[data-terrain=desert],.ft-combat-stage[data-terrain=canyon]{background:linear-gradient(#bfc4ac,#e5d0a6 54%,#b99b67 55%,#8e7657)}
.ft-combat-stage[data-terrain=snow],.ft-combat-stage[data-terrain=tundra]{background:linear-gradient(#90aebc,#d8e3db 54%,#d4dccb 55%,#9eafa9)}
.ft-combat-fighter{position:relative;z-index:1;width:115px;height:120px;display:flex;align-items:center;justify-content:center;transform-origin:50% 90%;--strike:22px}
.ft-combat-defender{--strike:-22px}.ft-combat-sprite{width:104px;height:104px;filter:drop-shadow(0 6px 2px #16282a70)}.ft-combat-sprite svg{display:block;width:100%;height:100%}.ft-combat-defender .ft-combat-sprite{transform:scaleX(-1)}
.ft-combat-versus{align-self:center;z-index:1;font:italic 700 17px Georgia,serif;color:#f7efd1;text-shadow:0 1px 3px #1d3337}
.ft-combat-windup{animation:ft-combat-lunge 240ms ease-in forwards}.ft-combat-recover{animation:ft-combat-recover 200ms ease-out}.ft-combat-hit .ft-combat-sprite{animation:ft-combat-hit 550ms ease-out}.ft-combat-fallen .ft-combat-sprite{opacity:.35;filter:grayscale(.7) drop-shadow(0 3px 2px #16282a70)}
.ft-combat-damage{position:absolute;top:12px;left:50%;z-index:2;white-space:nowrap;color:#fff1b9;font:700 25px Georgia,serif;text-shadow:0 2px 2px #7c2626,1px 0 #7c2626;animation:ft-combat-damage 850ms ease-out both;pointer-events:none}
.ft-combat-healthbars{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:10px 14px;background:#f6f0db}.ft-combat-health{display:grid;grid-template-columns:1fr auto;gap:4px;min-width:0}.ft-combat-health b{font-size:10px;overflow-wrap:anywhere}.ft-combat-health strong{font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.ft-combat-health progress{grid-column:1/-1;width:100%;height:9px;accent-color:#427f60}.ft-combat-health small,.ft-combat-health em{grid-column:1/-1;font-size:9px}.ft-combat-health em{color:#9c452d;font-style:normal;font-weight:bold}.ft-combat-low progress{accent-color:#b65038}
.ft-combat-status{padding:7px 12px;margin:0!important;min-height:16px;background:#e3e2c9;text-align:center;font-size:11px!important;font-weight:bold}.ft-combat-log{font-size:9px;padding:0 14px 0 29px;margin:5px 0}.ft-combat-log:empty{display:none}
.frontier-app .ft-combat-window>footer{padding:8px 12px;margin:0;gap:10px;justify-content:space-between}.frontier-app .ft-combat-window>footer small{display:block;font-size:8px;max-width:65%}.frontier-app .ft-combat-window>footer button{font-size:11px;padding:6px 11px;background:#31554d;color:#fff5dc;white-space:nowrap}
@keyframes ft-combat-lunge{from{transform:translateX(0)}to{transform:translateX(var(--strike))}}
@keyframes ft-combat-recover{from{transform:translateX(var(--strike))}to{transform:translateX(0)}}
@keyframes ft-combat-hit{0%,40%{filter:brightness(2.2) drop-shadow(0 0 7px #ffedb3)}20%,60%{opacity:.4}100%{opacity:1}}
@keyframes ft-combat-damage{from{transform:translate(-50%,12px);opacity:1}75%{opacity:1}to{transform:translate(-50%,-22px);opacity:0}}
@container(max-width:550px){.ft-combat-window>header h3{font-size:16px}.ft-combat-names{padding:8px 10px}.ft-combat-names b{font-size:12px}.ft-combat-stage{height:115px}.ft-combat-fighter{width:90px;height:105px}.ft-combat-sprite{width:85px;height:85px}.ft-combat-healthbars{padding:8px;gap:8px}.ft-combat-health{display:flex;flex-direction:column;gap:3px}.ft-combat-health strong{font-size:10px}}
@media(prefers-reduced-motion:reduce){.ft-combat-windup,.ft-combat-recover,.ft-combat-hit .ft-combat-sprite,.ft-combat-damage{animation:none}}

/* Frontier fills the compact desktop instead of resolving a percentage inside fit-content. */
.ft-combat-context{padding:5px 10px;background:#294b45;color:#edf0d3;font-size:9px;text-align:center;font-variant-numeric:tabular-nums}
.ft-combat-horizon{position:absolute;inset:25% -5% 35%;background:#4a6c6570;clip-path:polygon(0 80%,14% 15%,25% 70%,40% 0,55% 75%,75% 20%,100% 85%,100% 100%,0 100%)}
.ft-combat-caption{position:absolute;top:7px;left:0;right:0;text-align:center;font:italic 11px Georgia,serif;color:#fff5dc;text-shadow:0 1px 3px #152b30}
.ft-combat-projectile{position:absolute;z-index:4;top:48%;left:24%;width:65px;height:24px;overflow:visible;animation:ft-projectile calc(240ms / var(--battle-speed)) ease-in both;filter:drop-shadow(0 2px 2px #192c2a)}
.ft-projectile-defender{left:auto;right:24%;--projectile-direction:-1;transform:scaleX(-1)}
.ft-weapon-shell{animation-name:ft-shell}.ft-weapon-beam{width:52%;left:24%;animation-name:ft-beam}.ft-weapon-melee{left:43%;width:40px;animation-name:ft-beam}.ft-weapon-melee.ft-projectile-defender{right:43%}
.ft-combat-burst{position:absolute;z-index:3;top:48%;width:60px;height:60px;border-radius:50%;background:radial-gradient(circle,#fff7c7 0 8%,#ffcf70 12% 23%,#c1753b99 35%,transparent 65%);animation:ft-burst calc(650ms / var(--battle-speed)) ease-out both;pointer-events:none}
.ft-burst-attacker{left:16%}.ft-burst-defender{right:16%}.ft-scene-impact{animation:ft-battle-shake calc(250ms / var(--battle-speed)) ease-out}
.ft-scene-paused *,.ft-scene-paused{animation-play-state:paused!important}
.ft-combat-stage[data-terrain=water] .ft-combat-horizon,.ft-combat-stage[data-terrain=lake] .ft-combat-horizon{inset:61% 0 5%;clip-path:none;background:repeating-linear-gradient(175deg,transparent 0 13px,#c4e4db44 14px 16px,transparent 17px 29px)}
.ft-combat-stage[data-weapon=shell] .ft-combat-windup,.ft-combat-stage[data-weapon=beam] .ft-combat-windup{--strike:-6px}
.ft-combat-controls{display:flex;align-items:center;gap:5px;padding:6px 12px;background:#dddcc0}.ft-combat-controls button{min-height:30px;font-size:10px;padding:4px 8px}.ft-combat-controls small{margin-left:auto;font-size:9px}
@keyframes ft-projectile{from{translate:0 0;opacity:0}20%{opacity:1}to{translate:calc(230px * var(--projectile-direction,1)) 0;opacity:1}}
@keyframes ft-shell{from{translate:0 0}50%{translate:calc(110px * var(--projectile-direction,1)) -30px}to{translate:calc(230px * var(--projectile-direction,1)) 0}}
@keyframes ft-beam{from{opacity:0;filter:brightness(3)}to{opacity:1;filter:brightness(1)}}
@keyframes ft-burst{from{scale:.3;opacity:1}to{scale:1.8;opacity:0}}
@keyframes ft-battle-shake{0%,100%{translate:0 0}25%{translate:2px 1px}60%{translate:-2px -1px}}
@container(max-width:550px){.ft-combat-projectile{width:45px;animation-name:ft-projectile-small}.ft-weapon-melee{animation-name:ft-beam}.ft-weapon-beam{width:52%;animation-name:ft-beam}.ft-combat-context{font-size:8px}.ft-combat-controls{padding:5px 8px}.ft-combat-window>footer{padding:6px 8px}}
@keyframes ft-projectile-small{from{translate:0 0}to{translate:calc(140px * var(--projectile-direction,1)) 0}}
@media(prefers-reduced-motion:reduce){.ft-combat-projectile,.ft-combat-burst,.ft-scene-impact{animation:none}}
.ft-council-toggle{display:none}
.compact-desktop .desktop-enabled .frontier-window{position:fixed!important;inset:env(safe-area-inset-top,0px) 0 calc(50px + env(safe-area-inset-bottom,0px))!important;width:auto!important;height:calc(100dvh - 50px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;max-height:none!important;min-width:0;display:flex;flex-direction:column;z-index:100}
.compact-desktop .frontier-window .window-title{min-height:28px;height:28px;flex:none;padding-block:0}
.compact-desktop .frontier-window .window-controls button{height:26px;min-height:26px}
.compact-desktop .frontier-window .window-body{flex:1;min-height:0;min-width:0}
.compact-desktop .frontier-app{padding:4px}
.compact-desktop .frontier-app>footer{display:none}
.compact-desktop .ft-banner{padding:0 0 3px;gap:6px}
.compact-desktop .ft-banner h2{font-size:16px;letter-spacing:1px}
.compact-desktop .frontier-app [data-ft=end]{min-height:32px;padding:4px 8px}
.compact-desktop .ft-resources{gap:2px;padding:3px 0}
.compact-desktop .ft-resources>div{padding:0 3px;gap:0 3px}
.compact-desktop .ft-resources b{font-size:15px}
.compact-desktop .ft-resources span{display:block;font-size:9px}
.compact-desktop .ft-map-tools{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;min-height:36px;gap:4px}
.compact-desktop .ft-map-tools button{flex:none;min-height:32px;min-width:32px;padding:4px 6px;font-size:11px;white-space:nowrap}
.compact-desktop .ft-viewport{display:none}
.compact-desktop .ft-quick-tile{min-height:14px;max-height:14px;font-size:9px}
.compact-desktop .ft-message{font-size:10px;min-height:24px;max-height:28px}
.compact-desktop .ft-council nav button{min-height:32px;font-size:10px}
.compact-desktop .ft-panel button,.compact-desktop .ft-inspector button{min-height:32px;padding:5px 7px;font-size:11px}
.compact-desktop .frontier-app select,.compact-desktop .frontier-app input{min-height:36px;font-size:16px}
.compact-desktop .ft-panel p,.compact-desktop .ft-inspector p,.compact-desktop .ft-panel small,.compact-desktop .ft-inspector small{font-size:11px}
.compact-desktop .ft-setup{top:4px;width:calc(100% - 8px);max-height:calc(100% - 8px);padding:8px}
.compact-desktop .ft-setup button{min-height:36px}
/* A portrait phone gets a full-width map and a collapsible council drawer. */
@media(max-width:600px){
 .compact-desktop .ft-layout{display:flex;flex-direction:column;gap:4px}
 .compact-desktop .ft-world{flex:1;min-height:120px}
 .compact-desktop .ft-council{flex:none;height:44%;max-height:300px;border-left:0;border-top:1px solid #a5ad96;padding:3px 0 0}
 .compact-desktop .ft-council nav{display:flex;overflow-x:auto;flex-wrap:nowrap;gap:4px;min-height:36px;margin-bottom:3px;scrollbar-width:thin}
 .compact-desktop .ft-council nav button{flex:none;min-width:54px;padding:5px 8px}
 .compact-desktop .ft-layout[data-panel-open=false] .ft-council{height:40px}
 .compact-desktop .ft-layout[data-panel-open=false] .ft-council>.ft-panel,.compact-desktop .ft-layout[data-panel-open=false] .ft-council>.ft-inspector,.compact-desktop .ft-layout[data-panel-open=false] .ft-council>.ft-overview{display:none!important}
 .compact-desktop .ft-council-toggle{display:block}
 .compact-desktop .ft-resources>div{grid-template-columns:1fr}
 .compact-desktop .ft-resources small{font-size:8px;letter-spacing:0}
 .compact-desktop .ft-resources b{font-size:15px}
}
@media(max-height:500px) and (orientation:landscape){
 .compact-desktop .ft-layout{display:grid;grid-template-columns:minmax(0,1fr) min(32vw,270px);gap:5px}
 .compact-desktop .ft-council,.compact-desktop .ft-layout[data-panel-open=false] .ft-council{height:auto;max-height:none;border-top:0;border-left:1px solid #a5ad96;padding:0 0 0 5px}
 .compact-desktop .ft-council nav{display:grid;overflow:auto;min-height:0}
 .compact-desktop .ft-layout[data-panel-open=false] .ft-council>.ft-inspector:not([hidden]),.compact-desktop .ft-layout[data-panel-open=false] .ft-council>.ft-panel:not([hidden]),.compact-desktop .ft-layout[data-panel-open=false] .ft-council>.ft-overview:not([hidden]){display:block!important}
 .compact-desktop .ft-council-toggle{display:none}
 .compact-desktop .ft-world{min-height:0}
 .compact-desktop .frontier-app .ft-resources{grid-template-columns:repeat(6,minmax(0,1fr));padding:3px 0}
 .compact-desktop .frontier-app .ft-resources>.ft-resource-card,.compact-desktop .frontier-app .ft-resources>.ft-stockpile-link{padding:3px;gap:1px}
 .compact-desktop .ft-resources .ft-resource-note{display:none}
 .compact-desktop .frontier-app .ft-resources b{font-size:15px}
 .compact-desktop .ft-map-tools{scrollbar-width:none}
 .compact-desktop .ft-map-tools::-webkit-scrollbar{display:none}
 .compact-desktop .ft-quick-tile{display:none}
 .compact-desktop .ft-council nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:2px}
 .compact-desktop .ft-council nav button{min-height:28px;font-size:10px;padding:3px}
 .compact-desktop .ft-panel small,.compact-desktop .ft-inspector small{font-size:10px}
 .compact-desktop .ft-combat-stage{height:85px}
 .compact-desktop .ft-combat-window{max-height:100%;overflow:auto}
}

.ft-mobile-new{display:none}.compact-desktop .ft-mobile-new{display:block}

.compact-desktop:has(.frontier-window.is-active:not([hidden])) .privacy-note{display:none}
.compact-desktop .ft-inspector{display:flex;flex-direction:column}.compact-desktop .ft-inspector>*{flex-shrink:0}.compact-desktop .ft-inspector>.ft-unit-list{order:-2}.compact-desktop .ft-inspector>.ft-unit-detail{order:-1}

@media(max-height:500px) and (orientation:landscape){.compact-desktop .ft-layout[data-panel-open=false] .ft-council>.ft-inspector:not([hidden]){display:flex!important}}

/* Short landscape screens need the taskbar's space; title-bar minimize/close return to it. */
@media(max-height:500px) and (orientation:landscape){
 .compact-desktop:has(.frontier-window.is-active:not([hidden])) .taskbar{display:none}
 .compact-desktop .desktop-enabled .frontier-window{bottom:env(safe-area-inset-bottom,0px)!important;height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important}
 .compact-desktop .ft-council nav{display:flex;flex-wrap:nowrap;overflow-x:auto;min-height:32px;scrollbar-width:none}
 .compact-desktop .ft-council nav::-webkit-scrollbar{display:none}
 .compact-desktop .ft-council nav button{flex:none;min-width:50px}
}

.compact-desktop .ft-actions [data-ft=settle],.compact-desktop .ft-actions [data-ft=farm],.compact-desktop .ft-actions [data-ft=auto-improve]{order:-1}

.frontier-app .ft-resources .ft-stockpile-link{align-self:flex-start;min-height:0;padding:1px 5px;font-size:10px}

.ft-ready-unit{display:flex;align-items:center;gap:6px;padding:6px 0;border-bottom:1px solid #b1b99f}.ft-ready-unit>div{flex:1;min-width:0}.ft-ready-unit b{font:700 12px Georgia,serif}.ft-ready-unit small{margin-top:2px}.ft-ready-unit>button{flex:none;min-height:32px}.ft-unlock-guide{margin:7px 0}.ft-unlock-guide summary,.ft-panel details>summary{cursor:pointer;font-weight:bold;margin:5px 0}
