:root{--ink:#f0ebd5;--muted:#a1afa0;--gold:#d7c394;--line:#d2d8b723;--panel:#142c28;--accent:#bada82;--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#102724;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;user-select:none;-webkit-user-select:none;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;border:0}button:focus-visible{outline:2px solid #f7dc9c;outline-offset:3px}button:disabled{cursor:default}h1,h2,h3,p{margin:0}.hidden{display:none!important}#app{position:relative;width:100%;height:100%;isolation:isolate}#landscape{position:absolute;inset:0;width:100%;height:100%;z-index:-2}#app.in-battle #landscape{top:58px;bottom:138px;height:calc(100% - 196px)}.screen{height:100%;width:100%}#menu{display:flex;flex-direction:column;padding:22px max(32px,var(--safe-right)) max(15px,var(--safe-bottom)) max(32px,var(--safe-left));background:linear-gradient(180deg,#102724a3,#10272429 40%,#102724cc 83%)}.masthead{display:flex;align-items:center;justify-content:space-between;height:34px;flex-shrink:0}.brand{display:flex;gap:10px;align-items:center;font-size:10px;font-weight:600;letter-spacing:2.2px}.brand svg{width:29px;height:29px;fill:none;stroke:#d1c69b;stroke-width:1.7}.header-actions{display:flex;align-items:center;gap:10px}.edition{font-size:9px;letter-spacing:2px;color:#b4bbaa;margin-right:15px}.icon-button{width:44px;height:44px;border:1px solid var(--line);background:#132d2788;border-radius:50%;font-size:20px;color:#e1dec9;display:grid;place-items:center}.hero{display:flex;align-items:center;justify-content:space-between;flex:1;min-height:99px;max-height:210px}.eyebrow,.tiny-label{font-size:9px;font-weight:600;letter-spacing:2px;color:var(--gold)}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(37px,6vw,79px);letter-spacing:-2.6px;line-height:1.22}h1 em{font-weight:400;color:#c6d6a6}h1 .title-dot{font-family:serif;font-size:24px;color:var(--gold);vertical-align:top;display:inline-block;margin:8px 0 0 13px}.hero-note{font-family:Georgia,serif;font-style:italic;line-height:1.6;font-size:15px;color:#ccd5bd;padding-right:14px}.selection-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;font-size:9px;letter-spacing:2.1px;font-weight:600}.selection-heading span:last-child{color:#c7cdb7;letter-spacing:1px;font-weight:400}#factions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;flex:1.7;min-height:156px;max-height:290px}.faction-card{position:relative;overflow:hidden;text-align:left;border:1px solid #cad5b930;border-radius:11px;background:linear-gradient(155deg,#335045e0,#122b26ed);padding:14px 16px 15px;display:flex;flex-direction:column;align-items:stretch;transition:background .2s,border-color .2s,transform .2s}.faction-card::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,var(--faction-glow),transparent 68%);opacity:.18;pointer-events:none}.faction-card.selected{border-color:var(--faction);background:linear-gradient(155deg,#506346ee,#203c2fee);box-shadow:inset 0 0 0 1px var(--faction),0 12px 25px #071d222b;transform:translateY(-3px)}.faction-card:not(.selected){color:#d4dccb}.faction-meta{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.5px;color:#b8c4ae}.faction-meta b{font-size:10px;font-weight:400}.faction-meta .check{color:var(--faction);font-size:13px}.faction-card canvas{width:100%;flex:1;min-height:58px;height:100px;position:relative}.faction-name{font-family:Georgia,serif;font-size:clamp(14px,2vw,24px);font-weight:400;line-height:1.2;white-space:nowrap}.faction-species{font-size:8px;letter-spacing:1.1px;color:var(--faction);margin-top:6px;white-space:nowrap}.faction-trait{margin-top:13px;padding-top:11px;border-top:1px solid var(--line);font-size:10px;color:#bdcbb6}.menu-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;flex:1;min-height:70px;max-height:112px}.selected-lore p{font-family:Georgia,serif;font-style:italic;font-size:16px;color:#d7dfc7;margin-top:7px}.play-actions{display:flex;gap:12px;align-items:center}.primary,.secondary{min-height:47px;border-radius:6px;padding:0 23px;font-weight:600;font-size:13px}.primary{background:#d8c799;color:#23382b;box-shadow:0 4px 12px #09221f35}.primary span{margin-left:26px;font-size:19px;font-weight:400}.secondary{background:#1f3a3080;border:1px solid #c9d1b742;color:#d9dfc9}.secondary span{margin-left:17px}.primary:active,.secondary:active{transform:translateY(1px);filter:brightness(.9)}.menu-caption{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;color:#aebaa27d;flex-shrink:0}.battle-hud{height:58px;padding:7px max(16px,var(--safe-right)) 6px max(16px,var(--safe-left));display:flex;gap:20px;align-items:center;background:#132d29;border-bottom:1px solid var(--line)}.base-status{position:relative;flex:1;min-width:100px}.base-status>div:first-child{display:flex;justify-content:space-between;align-items:center}.base-status .tiny-label{font-size:7px;letter-spacing:1.3px}.base-status strong{font-family:Georgia,serif;font-size:13px;font-weight:400}.health{height:5px;background:#0b211d;margin-top:5px;border-radius:3px;overflow:hidden}.health i{display:block;height:100%;width:100%;background:var(--accent);transition:width .15s}.enemy .health i{background:#d89980}.health-text{display:block;text-align:right;font-size:8px;font-variant-numeric:tabular-nums;color:#b0c0aa;margin-top:3px}.enemy .health-text{text-align:left}.resources{display:flex;gap:17px;align-items:center;justify-content:center}.seed-stat{display:grid;grid-template-columns:23px 45px;grid-template-rows:22px 11px;align-items:center}.seed-stat strong{font-size:23px;font-weight:600;font-variant-numeric:tabular-nums}.seed-symbol{grid-row:1/3;font-size:29px;color:#daca99}.seed-stat>span:last-child{font-size:7px;letter-spacing:2px;color:#b3c3a6}.stat-divider{height:26px;width:1px;background:var(--line)}.age-stat{display:flex;flex-direction:column;gap:4px;align-items:center;min-width:80px}.age-stat strong{font-family:Georgia,serif;font-weight:400;font-size:14px;color:#d9d7b6}.age-stat span{font-size:10px;letter-spacing:1px;font-variant-numeric:tabular-nums;color:#afc0ae}.battle-hud .icon-button{width:44px;height:44px;flex-shrink:0;font-size:14px}.battle-heading{position:absolute;top:70px;left:max(20px,var(--safe-left));right:max(20px,var(--safe-right));display:flex;justify-content:space-between;color:#cfdbc2a1;font-size:8px;letter-spacing:1.7px;text-transform:uppercase;pointer-events:none}.battle-dock{position:absolute;bottom:0;left:0;right:0;height:138px;padding:5px max(14px,var(--safe-right)) max(8px,var(--safe-bottom)) max(14px,var(--safe-left));background:linear-gradient(#15322d,#102722);border-top:1px solid var(--line)}.queue-row{height:23px;display:flex;align-items:center;gap:12px;margin-bottom:5px}.queue-row>span{font-size:8px;letter-spacing:1.5px;color:#a0b29e}.queue-row #army-count{margin-left:auto;font-variant-numeric:tabular-nums}#queue{display:flex;gap:5px}#queue i{position:relative;height:5px;width:38px;background:#425545;border-radius:3px;overflow:hidden}#queue i b{position:absolute;inset:0;background:var(--accent);transform-origin:left}.controls{display:flex;gap:14px;height:88px}#unit-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;flex:1;min-width:0}.unit-button{padding:3px 4px 5px;border:1px solid #9cb19432;background:linear-gradient(145deg,#2a4639,#18372c);border-radius:7px;display:flex;flex-direction:column;align-items:center;position:relative;overflow:hidden;min-width:0}.unit-button canvas{position:absolute;top:-6px;left:0;width:100%;height:63px;pointer-events:none}.unit-button strong{font-size:9px;font-weight:500;margin-top:auto;white-space:nowrap;z-index:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.unit-button small{font-size:11px;font-variant-numeric:tabular-nums;color:#e0d3a7;margin-top:3px;font-weight:600;z-index:1}.unit-button:disabled{opacity:.44}.unit-button.locked{opacity:.38;background:#1a302b}.unit-button.locked small{font-size:9px;color:#b6c0af}.unit-button:active:not(:disabled){background:#4a6546}.tactics{display:grid;grid-template-columns:repeat(3,1fr);width:245px;gap:6px}.tactic{border:1px solid #b8b79736;background:#263e32;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;position:relative;overflow:hidden;padding:5px 2px}.tactic-symbol{font-size:26px;color:#d5c494;line-height:1.1}.tactic strong{font-size:9px;font-weight:500;white-space:nowrap}.tactic small{font-size:8px;color:#c6c9a4}.tactic i{position:absolute;height:3px;background:#d4c793;bottom:0;left:0;width:0;transition:width .1s}.tactic:disabled{opacity:.5}.tactic.super{background:#354630;border-color:#c7c59a66}.tactic.super.ready{box-shadow:inset 0 0 15px #d8d39422}.tactic.super.ready .tactic-symbol{color:#f0e4b1}#tip{position:absolute;bottom:150px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;max-width:80%;border:1px solid #d7d9b831;background:#142f29db;border-radius:6px;padding:5px 4px 5px 10px;font-size:10px;color:#e1e4ca;white-space:nowrap;box-shadow:0 4px 16px #0c24254d}.tip-number{font-size:8px;color:#c6c799;border-right:1px solid #c6c79936;padding-right:8px}#dismiss-tip{min-width:44px;min-height:30px;background:transparent;font-size:18px;color:#cad1b9}#battle-banner{position:absolute;top:95px;left:50%;transform:translateX(-50%);font-family:Georgia,serif;font-size:22px;color:#f2e5b8;text-shadow:0 2px 12px #0a251c;pointer-events:none;text-align:center;white-space:nowrap}#modal{position:absolute;inset:0;z-index:20;background:#071b1dcc;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:grid;place-items:center;padding:15px max(28px,var(--safe-right)) max(15px,var(--safe-bottom)) max(28px,var(--safe-left))}.modal-panel{position:relative;width:min(900px,100%);max-height:100%;overflow:auto;overscroll-behavior:contain;background:linear-gradient(145deg,#294539,#132d29);border:1px solid #a4b29840;border-radius:14px;padding:26px 30px;box-shadow:0 20px 80px #02191566}.close{position:absolute;right:12px;top:10px;z-index:1;background:#15312ad9}.modal-panel h2{font-family:Georgia,serif;font-weight:400;font-size:30px;margin:5px 45px 7px 0}.modal-description{font-size:12px;line-height:1.55;color:#bacbb5;max-width:680px}.missions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:18px}.mission{border:1px solid #bcccab30;background:#1d392f;border-radius:6px;text-align:left;min-height:99px;padding:12px;display:flex;flex-direction:column;gap:8px}.mission small{color:#cfc497;font-size:9px;letter-spacing:1.3px}.mission strong{font-family:Georgia,serif;font-size:15px;font-weight:400}.mission span{font-size:9px;color:#a7bba1;margin-top:auto}.mission:disabled{opacity:.33}.mission.complete{border-color:#b5c58b66}.mission:active:not(:disabled){background:#486047}.guide-tabs{display:flex;gap:7px;margin:15px 0}.guide-tabs button{background:#234332;border:1px solid #a2b99240;border-radius:5px;min-height:44px;padding:8px 15px;font-size:11px}.guide-tabs button.active{background:#b9c68e;color:#203728}.guide-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:25px}.guide-layout h3{font-family:Georgia,serif;font-size:20px;font-weight:400;margin:13px 0 7px}.guide-layout p{font-size:12px;line-height:1.7;color:#ccd5bc}.guide-rows{display:flex;flex-direction:column;gap:6px;margin-top:12px}.guide-row{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:5px}.guide-row canvas{width:60px;height:48px}.guide-row strong{font-size:12px;font-weight:500;display:block}.guide-row small{font-size:10px;color:#b8c4aa}.guide-row em{font-style:normal;font-size:10px;margin-left:auto;color:#dfd3a3}.help-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:18px}.help-grid article{background:#102c2570;border:1px solid var(--line);padding:13px;border-radius:8px}.help-grid h3{font-family:Georgia,serif;font-weight:400;font-size:17px;margin-bottom:8px}.help-grid p{font-size:11px;color:#c4d0b9;line-height:1.6}.settings-list{margin-top:16px;display:grid;gap:10px}.setting{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);gap:20px}.setting strong{font-weight:500;font-size:13px;display:block}.setting small{font-size:11px;color:#b9c4ad;display:block;margin-top:4px}.toggle{width:70px;min-height:44px;border-radius:22px;border:1px solid #b5c79b55;background:#20392d;font-size:11px}.toggle.on{background:#b5c68c;color:#203529}.settings-note{font-size:11px;line-height:1.6;color:#aabcaa;margin-top:18px}.difficulty-row,.opponents{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.choice{min-height:44px;padding:10px 17px;border-radius:6px;background:#234030;border:1px solid var(--line);font-size:12px}.choice.active{background:#bfca98;color:#253e2e}.modal-actions{display:flex;gap:10px;margin-top:22px;align-items:center}.result-hero{text-align:center;padding:8px 0}.result-hero .eyebrow{color:#ced4ac}.result-hero h2{font-size:45px;margin:6px 0 10px}.result-hero .result-stars{color:#e5d29d;font-size:26px;letter-spacing:10px;margin:10px 0}.result-stats{display:flex;justify-content:center;gap:40px;margin:17px 0}.result-stats strong{display:block;font-family:Georgia,serif;font-weight:400;font-size:27px}.result-stats span{display:block;font-size:9px;letter-spacing:1.5px;color:#b8c7ad;margin-top:4px}.result-hero .modal-actions{justify-content:center}.pause-layout{text-align:center;padding:10px 0}.pause-layout h2{margin-right:0}.pause-layout .modal-actions{justify-content:center}#toast{position:absolute;left:50%;bottom:max(18px,var(--safe-bottom));transform:translateX(-50%);border:1px solid #acbd934d;background:#193629f5;color:#e5e5c7;padding:10px 16px;border-radius:7px;font-size:11px;z-index:40;max-width:85%;text-align:center}#rotate{display:none}.reduced *{transition:none!important;animation:none!important}
@media(min-height:650px){#menu{padding-top:35px;padding-bottom:28px}.faction-card{padding:21px}.faction-card canvas{min-height:120px}.battle-dock{height:166px;padding-bottom:18px}.controls{height:113px}#app.in-battle #landscape{bottom:166px;height:calc(100% - 224px)}.unit-button canvas{height:85px}.unit-button strong{font-size:12px}.unit-button small{font-size:14px}.tactics{width:310px}.tactic strong{font-size:12px}.tactic small{font-size:10px}#tip{bottom:180px}.battle-heading{font-size:10px}.battle-hud{padding-left:25px;padding-right:25px}.base-status strong{font-size:16px}}
@media(max-height:480px){#menu{padding-top:11px;padding-bottom:max(9px,var(--safe-bottom))}.masthead{height:29px}.brand{font-size:8px;letter-spacing:1.7px}.brand svg{width:24px;height:24px}.edition{font-size:7px}.hero{min-height:65px;max-height:88px}h1{font-size:43px;letter-spacing:-1.8px}.eyebrow{font-size:7px;letter-spacing:1.7px}.hero-note{font-size:12px}.selection-heading{font-size:7px;padding-bottom:8px}.faction-card{padding:8px 10px 9px;border-radius:7px}.faction-card canvas{height:66px;min-height:54px}.faction-meta{font-size:7px}.faction-meta b{font-size:7px}.faction-name{font-size:17px}.faction-species{font-size:6px;letter-spacing:.8px;margin-top:4px}.faction-trait{font-size:8px;margin-top:8px;padding-top:7px}#factions{gap:8px;min-height:144px;max-height:173px}.menu-footer{min-height:58px;max-height:74px}.selected-lore .tiny-label{font-size:7px}.selected-lore p{font-size:12px;margin-top:4px}.primary,.secondary{min-height:44px;padding:0 18px;font-size:11px}.primary span{margin-left:20px}.menu-caption{font-size:6px;letter-spacing:1.1px}.modal-panel{padding:17px 22px}.modal-panel h2{font-size:25px}.modal-description{font-size:11px}.missions{margin-top:12px;gap:7px}.mission{min-height:81px;padding:9px;gap:5px}.mission strong{font-size:13px}.mission small{font-size:8px}.mission span{font-size:8px}.help-grid{gap:10px;margin-top:13px}.help-grid article{padding:10px}.help-grid h3{font-size:15px}.help-grid p{font-size:10px}.guide-tabs{margin:10px 0}.guide-row canvas{height:34px;width:48px}.guide-row strong{font-size:11px}.guide-row small{font-size:9px}.guide-layout h3{font-size:18px}.guide-layout p{font-size:11px}.guide-rows{gap:3px;margin-top:5px}.result-hero{padding:0}.result-hero h2{font-size:33px}.result-stats{margin:9px 0}.result-hero .result-stars{font-size:19px;margin:6px}.result-hero .modal-actions{margin-top:14px}}
@media(max-width:760px) and (orientation:landscape){#menu{padding-left:max(17px,var(--safe-left));padding-right:max(17px,var(--safe-right))}.faction-name{font-size:14px}.faction-trait{font-size:7px}.hero-note{display:none}.selected-lore{display:none}.menu-footer{justify-content:flex-end}.edition{display:none}.tactics{width:208px;gap:4px}.controls{gap:8px}#unit-buttons{gap:4px}.unit-button strong{font-size:8px}.tactic strong{font-size:8px}.tactic small{font-size:7px}.battle-hud{gap:11px}.resources{gap:8px}.base-status .tiny-label{display:none}.base-status strong{font-size:12px}.age-stat{min-width:63px}.age-stat strong{font-size:12px}#tip{font-size:9px}.missions{gap:5px}.mission{padding:8px}.mission strong{font-size:12px}.faction-species{font-size:5.5px}}
@media(orientation:portrait){#rotate{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 35%,#355a43,#112b26 70%);z-index:100;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:30px}#rotate svg{width:87px;stroke:#c1ca9c;fill:none;stroke-width:2;margin-bottom:30px}#rotate h2{font-family:Georgia,serif;font-size:29px;font-weight:400}#rotate p{font-size:13px;line-height:1.6;color:#c1cdb1;margin-top:13px}}
/* Evolution update: three or four readable troop cards, with exact live stats. */
#unit-buttons{grid-template-columns:repeat(var(--troop-count,3),minmax(0,1fr))}.unit-button canvas{height:36px;top:-3px}.unit-button strong{font-size:10px}.unit-button small{font-size:11px;margin-top:2px}.unit-statline{font-size:9px;line-height:1.3;font-variant-numeric:tabular-nums;color:#e0dfc5;z-index:1;white-space:nowrap}.unit-statline.minor{font-size:8px;color:#b8c8b4}.unit-button strong{margin-top:auto}.battle-hud{gap:12px}#battle-guide-button{font-size:17px}.evolution-track{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:13px 0 10px}.evolution-step{text-align:left;border:1px solid #9cad883d;padding:11px 14px;border-radius:7px;background:#17362d;min-height:74px}.evolution-step span{display:block;font-size:8px;letter-spacing:1.4px;color:#b6c4a8}.evolution-step strong{display:block;font-family:Georgia,serif;font-size:22px;font-weight:400;color:var(--evolution-color);margin:4px 0}.evolution-step small{font-size:9px;color:#bbcbad}.evolution-step.active{border-color:var(--evolution-color);background:#37513a}.evolution-note{font-size:11px;color:#d0d7bf;line-height:1.4;margin-bottom:8px}.evolution-note span{color:#aabf9d}.troop-table-wrap{overflow-x:auto}.troop-table{width:100%;border-collapse:collapse;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.troop-table th{font-size:9px;font-weight:500;color:#acbda1;letter-spacing:.5px;border-bottom:1px solid #cbd5b436;padding:6px}.troop-table th:first-child{text-align:left}.troop-table td{border-bottom:1px solid #cbd5b41c;padding:2px 6px;color:#e5e2c9}.troop-table td:first-child{padding-left:0}.troop-table td button{min-height:49px;display:flex;align-items:center;gap:9px;background:transparent;width:100%;text-align:left}.troop-table td canvas{width:67px;height:45px;flex-shrink:0}.troop-table td strong{display:block;font-weight:600;font-size:12px;white-space:nowrap}.troop-table td small{display:block;font-size:9px;color:#b9c7ac;margin-top:3px}.faction-powers{display:flex;gap:22px;margin-top:12px}.faction-powers p{font-size:10px;line-height:1.6;color:#afc3ac;flex:1}.faction-powers strong{display:block;font-weight:600;color:#d5d7b5;font-size:12px}.troop-inspector{display:flex;align-items:center;gap:20px}.inspect-portrait{width:220px;height:155px;flex-shrink:0}.inspect-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 28px;flex:1}.inspect-stats strong{font-family:Georgia,serif;font-weight:400;font-size:28px;display:block}.inspect-stats small{font-size:8px;letter-spacing:1px;color:#b9c9a9}.troop-traits{display:flex;flex-wrap:wrap;gap:8px 24px;padding-left:18px;font-size:12px;color:#d4dcc2;margin:15px 0}.troop-traits li{line-height:1.5}.troop-inspector+.modal-description{margin-top:8px}
@media(max-height:480px){.evolution-track{gap:7px;margin-top:9px}.evolution-step{padding:8px 11px;min-height:64px}.evolution-step strong{font-size:18px}.evolution-note{font-size:10px}.troop-table td button{min-height:44px}.troop-table td canvas{width:53px;height:39px}.troop-table td strong{font-size:11px}.troop-table th{font-size:8px}.troop-table td{font-size:11px;padding:1px 5px}.faction-powers{margin-top:8px;gap:16px}.faction-powers p{font-size:9px}.faction-powers strong{font-size:11px}.inspect-portrait{height:126px;width:190px}.inspect-stats strong{font-size:24px}.troop-traits{font-size:11px;gap:5px 22px;margin:10px 0}.troop-inspector{gap:13px}}
@media(max-width:760px) and (orientation:landscape){.tactics{width:190px}.unit-button strong{font-size:9px}.unit-statline{font-size:8px}.unit-statline.minor{font-size:7px}.battle-hud{gap:7px}.troop-table td canvas{width:36px;height:36px}.troop-table td button{gap:5px}.troop-table td strong{font-size:10px}.troop-table th,.troop-table td{padding-left:4px;padding-right:4px}.inspect-portrait{width:150px}.inspect-stats{gap:10px 18px}.guide-tabs button{padding-left:10px;padding-right:10px}}
@media(min-height:650px){.unit-button canvas{height:52px;top:-4px}.unit-button strong{font-size:12px}.unit-statline{font-size:10px}.unit-statline.minor{font-size:9px}.unit-button small{font-size:13px}}

/* Four-age controls keep touch targets clear; myth rosters page four at a time. */
.battle-dock{height:177px}.queue-row{height:17px;margin-bottom:3px}.roster-nav{display:flex;align-items:center;gap:6px;height:44px}.roster-nav button{min-width:44px;min-height:44px;background:transparent;border-radius:5px;font-size:11px;padding:4px 10px;color:#bfcdb1}.roster-nav button.active{background:#496346;color:#f0edcf}.roster-nav button:disabled{opacity:.3}.roster-nav span{font-size:10px;color:#afc3ab}#den-button{margin-left:auto;border:1px solid #a9bf8844}.unit-button.unavailable{opacity:.55}.unit-button.rare{border-color:#d6b36888}#app.in-battle #landscape{bottom:177px;height:calc(100% - 235px)}#tip{bottom:184px}.evolution-track{grid-template-columns:repeat(4,1fr)}.evolution-step strong{font-size:17px}.upgrades button{min-height:44px;background:#cfca9b;color:#213929;border-radius:5px;padding:7px 10px;margin:9px 3px 0 0;font-size:11px}.upgrades button:disabled{opacity:.4}.upgrades{margin-bottom:16px}.guide-tabs{flex-wrap:wrap}.tactic strong{white-space:normal;text-align:center;line-height:1.1}.age-stat span{font-size:8px;letter-spacing:0}.troop-table td strong{white-space:normal}.troop-table td:first-child{min-width:210px}
@media(min-height:650px){.battle-dock{height:203px}#app.in-battle #landscape{bottom:203px;height:calc(100% - 261px)}#tip{bottom:213px}}

/* Settlement menus keep every choice readable at iPhone landscape sizes. */
#settlement-canvas{display:block;width:100%;height:260px;margin:12px 0;touch-action:manipulation}.settlement-buttons{display:grid;grid-template-columns:1fr 1fr;gap:16px}.settlement-buttons>div{display:grid;grid-template-columns:1fr 1fr;gap:6px}.settlement-buttons .tiny-label{grid-column:1/-1}.settlement-buttons .choice{margin:0;min-height:48px;font-size:11px;text-align:left}.building-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:15px 0}.building-cards article{background:#0d2a2366;border:1px solid #b5c99a33;padding:16px;border-radius:9px}.building-cards canvas{width:100%;height:150px;display:block}.building-cards h3{font-family:Georgia,serif;font-weight:400;font-size:22px;margin-bottom:8px}.building-cards p{font-size:12px;line-height:1.6;color:#c1d1b9;margin-bottom:10px}.building-cards .primary{width:100%;padding:9px;font-size:11px;min-height:46px}.building-cards .primary:disabled{opacity:.45}.building-cost{color:#e0d19a!important}.academy-options{display:flex;flex-wrap:wrap;gap:4px}.academy-options button{flex:1;text-transform:capitalize}#currency-label{font-size:6px;letter-spacing:.6px;white-space:nowrap}.roster-nav{gap:3px}.roster-nav button{padding:4px 8px}.queue-row>span{letter-spacing:.6px}#queue-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70%}
@media(max-height:480px){#settlement-canvas{height:220px}.building-cards canvas{height:110px}.building-cards{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.building-cards h3{font-size:19px}.building-cards article{padding:12px}}
#god-button{position:relative;overflow:hidden;min-width:86px;border-color:#d8c8e080}#god-fill{position:absolute;inset:0 auto 0 0;width:0;background:#c3a5db33;pointer-events:none}#god-label{position:relative;font-size:11px;color:#f0dff5}.fate-meter{height:42px;position:relative;background:#081f1b;border:1px solid #a994bb77;border-radius:8px;overflow:hidden;margin:16px 0}.fate-meter i{position:absolute;inset:0 auto 0 0;background:#ad95bf55}.fate-meter b{position:relative;display:block;line-height:40px;padding:0 12px;font-size:13px}.favour-comparison{display:grid;grid-template-columns:1fr 1fr;gap:14px}.favour-comparison div{padding:14px;border:1px solid #bec79433;border-radius:8px}.favour-comparison strong,.favour-comparison small{display:block}.favour-comparison small{padding-top:6px;color:#b9cbb1}.fate-acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.fate-acts article{padding:16px;background:#15392d;border:1px solid #afbb8d33;border-top:3px solid var(--act-color);border-radius:8px}.fate-acts p{font-size:12px;line-height:1.5}.fate-acts small{color:#b6cab2}.act-heading{display:flex;align-items:center;gap:8px;justify-content:space-between}.act-heading h3{font-size:16px}.act-heading strong{color:var(--act-color)}
@media(max-width:740px){#roster-nav{gap:4px}#roster-nav button{padding-inline:8px}.fate-acts{grid-template-columns:1fr}.act-heading h3{font-size:15px}}
/* Civilization expansion: explicit actions, readable six-faction and seven-age navigation. */
#factions{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.faction-card{padding-inline:10px}.faction-name{white-space:normal;font-size:clamp(13px,1.8vw,23px)}.faction-species{white-space:normal;line-height:1.35}.faction-trait{line-height:1.35}.evolution-track{display:flex;overflow-x:auto;padding-bottom:5px}.evolution-step{flex:0 0 150px}.plot-control{display:flex;flex-direction:column;gap:4px}.plot-control>.choice{width:100%;flex:1}.upgrade-ready{border:1px solid #f1ce7c!important;box-shadow:0 0 0 1px #d3ae5b33,inset 0 0 18px #e4bd5120}.quick-upgrade{min-height:44px;border-radius:5px;background:#dfca8e;color:#263c2c;font-size:11px;font-weight:700;padding:7px}.choice small{display:block;margin-top:5px;line-height:1.4}#settlement-canvas.three-rows{height:390px}.roster-nav{overflow-x:auto;flex-shrink:0}.roster-nav button{flex-shrink:0;white-space:nowrap}.roster-context{border:1px solid #d6bd76!important;color:#f1d28c!important}.unit-button.scientist{border-color:#b9dfd8}.lab-samples{display:grid;gap:9px}.lab-samples article{padding:14px;background:#153a2c;border-radius:7px}.lab-samples button{margin-top:8px;min-height:44px}@media(max-width:740px){#factions{overflow-x:auto;grid-template-columns:repeat(6,minmax(108px,1fr))}.settlement-buttons{grid-template-columns:1fr}#settlement-canvas.three-rows{height:350px}.evolution-step{flex-basis:135px}}@media(prefers-reduced-motion:reduce){.upgrade-ready{animation:none}}

/* Portraits occupy a dedicated column, leaving combat numbers readable. */
.unit-button{align-items:flex-end;text-align:right;padding:5px 6px 5px 44%;background:radial-gradient(ellipse at 20% 48%,#8ba96535,transparent 65%),linear-gradient(130deg,#334938,#17332c)}
.unit-button canvas{left:0;top:1px;width:46%;height:calc(100% - 4px)}
.unit-button strong{width:100%;font-size:9px;white-space:normal;line-height:1.08;margin-top:0;max-height:23px;overflow:hidden}.unit-statline{font-size:9px;white-space:normal;line-height:1.12}.unit-statline.minor{font-size:8px}.unit-button small{margin-top:auto}
.inspect-portrait{background:radial-gradient(ellipse at 50% 70%,#b5cb8033,transparent 67%);height:175px}.finisher-note{display:grid;gap:5px;padding:12px 15px;margin:12px 0;border:1px solid #d0b97566;border-radius:8px;background:#132d26}.finisher-note strong{font:20px Georgia,serif;color:#f5dca0}.finisher-note span{color:#e7e5c9;font-size:12px}.finisher-note small{color:#bdd0b7;font-size:11px;line-height:1.5}
@media(max-width:760px){.unit-button{padding-left:35%}.unit-button canvas{width:36%}.unit-statline{font-size:9px}.unit-statline.minor{font-size:8px}}

.portrait-actions{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.portrait-actions button{min-height:44px;padding:9px 14px;font-size:12px}.portrait-actions button[aria-pressed="true"]{border-color:#e9cf8c;background:#e9cf8c1c;color:#fff0bd}

@media(max-height:480px){.troop-inspector .inspect-portrait{height:142px}}
/* Reserve room for late-age currency totals beside the civilization name. */
.seed-stat{grid-template-columns:19px 72px}.seed-stat strong{font-size:21px;white-space:nowrap}
/* Four origins, sized for landscape phones. */
.hero h1{font-size:clamp(33px,5.25vw,70px);letter-spacing:-2px}.origin-nav-label{margin-right:auto;letter-spacing:.5px}.origin-guide-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.origin-guide-cards .choice{display:flex;flex-direction:column;text-align:left;padding:12px}.origin-guide-cards canvas{width:100%;height:130px}.origin-guide-cards small{line-height:1.7;margin-top:7px}.origin-building-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.origin-building-cards article{border:1px solid #9ac8b13b;border-radius:10px;padding:15px;background:#143938}.origin-building-cards h3{font-family:Georgia,serif;font-size:21px;margin:8px 0}.origin-building-cards p{font-size:12px;line-height:1.6;min-height:40px;color:#c0d3be}.origin-building-cards button{margin-top:12px;min-height:44px;padding:8px 13px}.origin-building-cards small{font-size:9px;letter-spacing:1px;color:#e1ca9a}.origin-settlement-art canvas{width:100%;height:112px;border:1px solid #8abbaf30;border-radius:12px;margin-top:12px}.origin-unit strong{white-space:normal}.origin-unit .minor{white-space:normal}.origin-guide-cards strong{font-family:Georgia,serif;font-size:18px}@media(max-width:760px){.origin-guide-cards{gap:7px}.origin-guide-cards canvas{height:105px}.origin-guide-cards strong{font-size:15px}.origin-guide-cards small{font-size:10px}.origin-building-cards h3{font-size:18px}}
.in-origins #currency-symbol{font-size:18px;width:19px;line-height:1;text-align:center}.origin-unit canvas{align-self:center;min-height:64px}.origin-unit .unit-statline.minor{font-size:8px}.origin-unit small{font-size:10px!important}.in-origins #battle-banner{font-size:clamp(15px,2.3vw,25px)}

/* Release 0.9: a single set of plots, and live controls inside the existing dock. */
#roster-nav{overflow:hidden;gap:2px}#roster-nav button{padding-inline:6px;font-size:10px}#roster-nav #den-button{margin-left:auto}#quick-button{border:1px solid #d9c180!important;color:#f3d794!important}#roster-nav #quick-button{margin-left:2px}#roster-nav #god-button{min-width:60px}#god-label{font-size:9px}.roster-nav [data-origin-order]{text-transform:capitalize}
#quick-drawer{position:absolute;z-index:8;left:max(14px,var(--safe-left));right:max(14px,var(--safe-right));bottom:max(8px,var(--safe-bottom));height:124px;background:#112e27;box-shadow:0 -4px 14px #0d272766}
#quick-drawer header{display:flex;align-items:center;height:44px;gap:5px}#quick-drawer header strong{flex:1;font-size:13px}#quick-drawer header small{display:block;color:#bdd0b7;font-weight:400;font-size:10px;margin-top:2px}#quick-drawer header button{min-width:44px;height:44px;background:#274435;border-radius:6px;font-size:20px}#quick-drawer header span{font-size:10px}#quick-drawer button:disabled{opacity:.48}
.quick-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;height:78px}.quick-cards>button{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;text-align:left;gap:4px;background:#284738;border-radius:7px;padding:7px 10px;min-width:0}.quick-cards strong{font-size:12px;line-height:1.15}.quick-cards small{font-size:10px;color:#bdcfb7}.quick-cards b{font-size:10px;color:#edd496;font-weight:600}.quick-open .controls,.quick-open .queue-row{visibility:hidden}
#modal[data-kind="settlement"] .modal-panel,#modal[data-kind="support-plot"] .modal-panel,#modal[data-kind="turret-plot"] .modal-panel,#modal[data-kind="origin-settlement"] .modal-panel{padding:14px 18px;overflow:hidden}
#modal[data-kind="settlement"] h2,#modal[data-kind="support-plot"] h2,#modal[data-kind="turret-plot"] h2,#modal[data-kind="origin-settlement"] h2{font-size:23px;margin:4px 48px 5px 0}
#modal[data-kind="settlement"] .modal-description,#modal[data-kind="support-plot"] .modal-description,#modal[data-kind="origin-settlement"] .modal-description{font-size:11px;line-height:1.3;max-width:calc(100% - 45px)}
.settlement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}.settlement-plot{display:flex;flex-direction:column;align-items:center;min-width:0;background:#15392e;border-radius:9px;padding:6px;text-align:center;min-height:132px}.settlement-plot canvas{width:100%;height:76px;pointer-events:none}.settlement-plot strong{font:15px Georgia,serif;line-height:1.15}.settlement-plot small{font-size:10px;color:#e7d49e;margin-top:6px}
.compact-footer{display:flex;align-items:center;gap:7px;margin-top:10px;min-height:44px}.compact-footer>small{font-size:10px;color:#bfceb1;flex:1}.compact-footer>span{font-size:11px}.compact-footer .primary,.compact-footer .secondary{padding:5px 12px;min-height:44px;font-size:11px}.compact-footer button:disabled{opacity:.35}.compact-footer .primary:last-child{margin-left:auto}
.build-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.build-choice{min-width:0;display:flex;align-items:center;text-align:left;padding:5px;background:#17392f;border-radius:7px;min-height:72px}.build-choice canvas{width:70px;height:66px;flex-shrink:0}.build-choice span{min-width:0;display:grid;gap:4px}.build-choice strong{font-size:12px}.build-choice small{font-size:10px;color:#c2d0b6}.build-choice b{font-size:10px;color:#ecd391}
.building-detail{display:grid;grid-template-columns:125px 1fr;gap:12px;margin:12px 0 5px}.building-detail>canvas{width:125px;height:154px}.building-detail>div{display:flex;flex-direction:column;gap:8px;justify-content:center}.building-detail p{font-size:12px;line-height:1.4}.building-detail .primary{min-height:44px;padding:6px 12px;font-size:12px}.building-detail .primary:disabled{opacity:.5}.building-detail .academy-options{flex-wrap:nowrap;gap:5px}.building-detail .choice{font-size:11px;min-height:44px;padding:5px 8px}.building-detail small{font-size:10px;color:#bfceb6}
.origin-plot-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.origin-plot-grid article{display:flex;align-items:center;background:#15392f;border-radius:8px;padding:4px;min-height:80px}.origin-plot-grid canvas{width:65px;height:74px;flex-shrink:0}.origin-plot-grid article>div{display:grid;gap:4px;flex:1}.origin-plot-grid strong{font-size:12px}.origin-plot-grid small{font-size:10px;color:#b7cdb6}.origin-plot-grid .primary{font-size:10px;min-height:44px;padding:4px 8px}.origin-plot-grid button:disabled{opacity:.5}
@media(max-width:740px){#roster-nav button{padding-inline:4px;font-size:9px}#roster-nav #god-button{min-width:52px}.roster-context{display:none}.quick-cards>button{padding:5px 7px}.quick-cards strong{font-size:11px}.quick-cards small{font-size:9px}.compact-footer{gap:5px}.compact-footer .primary,.compact-footer .secondary{padding-inline:9px}.building-detail{grid-template-columns:95px 1fr}.building-detail>canvas{width:95px}.settlement-plot strong{font-size:13px}.build-choice canvas{width:54px}.origin-plot-grid canvas{width:45px}}
@media(max-height:390px){#modal[data-kind="settlement"] .modal-panel,#modal[data-kind="support-plot"] .modal-panel,#modal[data-kind="turret-plot"] .modal-panel,#modal[data-kind="origin-settlement"] .modal-panel{padding:10px 14px}.origin-plot-grid article{min-height:74px}.origin-plot-grid canvas{height:64px}.origin-plot-grid article>div{gap:2px}.building-detail{margin-top:6px}.building-detail>canvas{height:139px}.build-choice{min-height:68px}.build-choice canvas{height:60px}.compact-footer{margin-top:7px}.settlement-plot{min-height:122px}}
/* Settlement already has live controls beside it; the extra duplicate tactic is unnecessary. */
#tower-button{display:none}.tactics{grid-template-columns:repeat(2,minmax(0,1fr));width:165px}
/* The home-indicator inset expands the dock instead of covering its navigation. */
:root{--dock-inset:max(0px,calc(var(--safe-bottom) - 8px))}.battle-dock{height:calc(177px + var(--dock-inset))}#app.in-battle #landscape{bottom:calc(177px + var(--dock-inset));height:calc(100% - 235px - var(--dock-inset))}#tip{bottom:calc(184px + var(--dock-inset))}
@media(min-height:650px){.battle-dock{height:calc(203px + var(--dock-inset))}#app.in-battle #landscape{bottom:calc(203px + var(--dock-inset));height:calc(100% - 261px - var(--dock-inset))}#tip{bottom:calc(213px + var(--dock-inset))}}

/* Frontier controls fit the same compact landscape phone layout. */
.preage-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:#203e32;border:1px solid #70856166;border-radius:12px;margin:12px 0}.preage-setting small{display:block;color:#b4c8b5;margin-top:4px}.preage-setting .toggle{flex:none;min-width:64px;min-height:44px}.building-preview-controls{grid-column:1/-1;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.building-preview-controls small{flex:1}.building-preview-controls button{min-height:44px;padding:6px 10px}.building-detail canvas{filter:drop-shadow(0 5px 8px #06180e88)}.preage-setting+ .tiny-label{margin-top:12px}#gc-match{background:#b4d79e;color:#11251d}

.building-detail>.building-preview-controls{flex-direction:row;justify-content:flex-end;gap:8px}.building-preview-controls small{flex:1;min-width:140px}.building-preview-controls button{font-size:11px}
.quick-cards>button{position:relative}.quick-cards canvas{position:absolute;right:3px;top:4px;width:45px;height:62px;opacity:.85;pointer-events:none}.quick-cards button:has(canvas)>strong,.quick-cards button:has(canvas)>small{padding-right:36px}.quick-cards button>strong,.quick-cards button>small,.quick-cards button>b{position:relative;z-index:1}

.building-detail>.building-visual{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0}.building-visual>canvas{width:125px;height:125px}.building-visual .building-preview-controls{display:grid;grid-template-columns:1fr 1fr;gap:4px;width:100%}.building-visual .building-preview-controls small{grid-column:1/-1;text-align:center;min-width:0}.building-visual .building-preview-controls button{min-width:0;font-size:10px;padding:4px 2px}.building-preview-controls small{white-space:nowrap}@media(max-width:740px){.building-visual>canvas{width:95px;height:115px}}

/* Nursery / vault comparison and explicit awakening costs. */
.upgrade-comparison{padding:7px 10px;border-radius:7px;background:#203f31;color:#efdb9f;font-size:12px;font-weight:600}.selection-requirements{display:flex;gap:10px;margin:12px 0;flex-wrap:wrap}.selection-requirements span{padding:10px;border:1px solid #c18e66;border-radius:9px;color:#ecd3bb}.selection-requirements .met{border-color:#9ab979;color:#cce9b5}#building-rank{color:#e8d39d;font-size:12px}#modal[data-kind="support-plot"] .modal-panel,#modal[data-kind="origin-settlement"] .modal-panel{overflow-y:auto}.building-detail p{font-size:11px}#modal[data-kind="support-plot"] .compact-footer{position:sticky;bottom:0;background:#122d25;padding-top:5px}#roster-nav .roster-context{display:inline-flex;align-items:center;justify-content:center;min-width:64px}.gc-readiness{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.gc-readiness span{padding:7px 9px;background:#243b30;border-radius:7px;font-size:11px}.gc-readiness .ready{color:#c5e5a9}.gc-readiness .pending{color:#e5c294}
/* Living civilisation panels: the village is the navigation. */
#modal[data-kind="settlement"] .modal-panel{padding:13px 18px;max-width:1050px} .settlement-heading{display:flex;align-items:center;justify-content:space-between;padding-right:48px}.settlement-heading h2{margin:2px 0 6px;font-size:25px}.settlement-heading p{font-size:12px;color:#e1d4af}.settlement-heading small{display:block;font-size:10px;color:#b4c6af;margin-top:4px}
#settlement-canvas{display:block;width:100%;height:clamp(174px,48vh,345px);border:1px solid #bcc59635;border-radius:12px;cursor:pointer}.settlement-access{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;margin-top:6px}.settlement-access button{font-size:9px;min-height:32px;line-height:1.3;padding:4px;background:#17372f;border:1px solid #bdcda42a;border-radius:5px}.settlement-access button.upgrade-ready{color:#f5d894;border-color:#e7c47b99}.building-detail{grid-template-columns:minmax(190px,.95fr) minmax(0,1.15fr);gap:20px}.building-detail canvas[data-building]{width:100%;height:190px;min-height:145px;background:radial-gradient(ellipse at 50% 70%,#bfcc7930,transparent 68%);border-radius:12px}.building-visual{min-width:0}.upgrade-comparison{font-size:11px;line-height:1.45;padding:9px 0;color:#e3d4ad}.build-choice-grid canvas[data-building]{height:110px;width:100%}.origin-open{display:flex!important;flex-direction:column;gap:7px;padding:10px!important}.origin-open>small{font-size:10px;color:#becbb3}.origin-choice{display:flex;align-items:center;gap:8px;text-align:left;width:100%;background:#163731;border:1px solid #aac59944;border-radius:7px;padding:5px}.origin-choice canvas{width:64px!important;height:65px!important;flex:none}.origin-choice span{font-size:11px}.origin-choice small{display:block;font-size:9px;color:#bdcbb3;margin:3px 0}.origin-choice b{font-size:10px;color:#e5d49b}.origin-choice:disabled{opacity:.45}.origin-plot-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))!important}.origin-plot-grid>article>canvas{min-height:118px}.origin-plot-grid>article:only-child{display:flex;align-items:center;max-width:620px;margin:auto;width:100%}.origin-plot-grid>article:only-child>canvas{width:40%;height:166px}.compact-footer small{font-size:10px;line-height:1.3;color:#bdcbb2}.moment-preview{width:100%;max-height:52vh;object-fit:contain;border-radius:10px;background:#102821}.moment-status{font-size:11px;color:#b9cdb2;margin:8px 0}
@media(max-height:430px){#modal[data-kind="settlement"] .modal-panel{padding:9px 12px}.settlement-heading h2{font-size:21px}#settlement-canvas{height:174px}.settlement-access button{min-height:30px;font-size:8px}.building-detail canvas[data-building]{height:157px}.building-detail{gap:13px}.building-detail .primary{min-height:40px}.compact-footer{gap:6px}.compact-footer .primary,.compact-footer .secondary{padding:0 13px;min-height:39px}}

/* Six-house war dock: the troop space is the build selector; the battlefield stays visible. */
#den-button,#nursery-button{display:none!important}.tactics{width:228px;grid-template-columns:repeat(3,minmax(0,1fr));flex-shrink:0}
#quick-drawer{position:relative;inset:auto!important;transform:none!important;width:auto!important;height:132px!important;max-height:none!important;flex:1;min-width:0;margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible!important}
#quick-drawer header{height:26px;min-height:26px;display:flex;gap:5px;padding:0 0 3px;font-size:9px;align-items:center}#quick-drawer header>span{flex:1;color:#aec5b0}#quick-drawer header button{min-height:24px;padding:2px 5px;font-size:9px;background:#24483b;border-radius:4px}
.dock-buildings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,51px);gap:4px}.dock-buildings>button,.dock-turret{position:relative;min-width:0;text-align:left;border-radius:6px;background:#183c32;border:1px solid #abc49c35;overflow:hidden}.dock-buildings>button{padding:3px 4px 3px 29px}.dock-buildings canvas{position:absolute;left:0;bottom:2px;width:29px;height:44px;pointer-events:none;opacity:.85}.dock-buildings strong,.dock-buildings small,.dock-buildings b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}.dock-buildings strong{font-size:10px;line-height:14px}.dock-buildings em{font-size:9px;font-style:normal;color:#b6c9aa}.dock-buildings small{font-size:8px;line-height:13px;color:#b9c9af}.dock-buildings b{font-size:10px;color:#f1d79b;line-height:14px}.dock-buildings button:disabled{opacity:.62}.dock-buildings .upgrade-ready{border-color:#cfc57a88}.dock-buildings .unbuilt{background:#102e28;border-style:dashed}
.dock-turret{display:flex}.dock-turret>button:first-child{flex:1;min-width:0;padding:3px 5px;background:transparent;text-align:left}.dock-turret>button:last-child{width:44px;flex-shrink:0;background:#26473a;font-size:17px}.dock-turret>button:last-child small{text-align:center}
#app.quick-open #landscape{filter:none!important}#app.quick-open .battle-dock{opacity:1!important}.dock-research{height:76px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.dock-research button{background:#193b30;padding:5px;border-radius:6px;font-size:10px;min-width:0}.dock-research strong,.dock-research small{display:block}.dock-research p{grid-column:1/-1;font-size:11px;padding:16px}.dock-research+nav{height:26px;display:flex;justify-content:center;gap:10px;align-items:center}.dock-research+nav button{width:44px;background:#24483b}
@media(max-width:740px){.tactics{width:183px}.dock-buildings>button{padding-left:4px}.dock-buildings canvas{display:none}.dock-buildings strong{font-size:9px}.dock-buildings small{font-size:8px}.dock-turret>button:first-child{padding-inline:3px}#quick-drawer header>span{display:none}#roster-nav #quick-button{font-size:11px;min-width:62px}}

.quick-open .controls,.quick-open .queue-row{visibility:visible}

/* Two 44-point rows and a compact toolbar fit inside the war dock. */
.battle-dock{height:calc(198px + var(--dock-inset))}.controls{height:118px}#app.in-battle #landscape{bottom:calc(198px + var(--dock-inset));height:calc(100% - 256px - var(--dock-inset))}#tip{bottom:calc(205px + var(--dock-inset))}
#quick-drawer{height:118px!important}#quick-drawer header{height:26px}#quick-drawer header button{height:24px;min-width:44px}.dock-buildings{grid-template-rows:repeat(2,44px)}.dock-buildings strong,.dock-buildings small,.dock-buildings b{line-height:12px}
/* 0.16.0: the battlefield stays visible throughout campaign travel. */
#territory-caption{position:absolute;z-index:12;top:28%;left:20%;right:20%;display:flex;align-items:center;flex-direction:column;gap:10px;text-align:center;padding:16px 22px;border:1px solid #d6e6bb66;border-radius:16px;background:#132f28ed;color:#eff1db;box-shadow:0 12px 35px #06171066}
#territory-caption.hidden{display:none}#territory-caption strong{font:700 23px Georgia,serif}#territory-caption span{font-size:13px;max-width:460px}#territory-caption button{min-height:44px;padding:8px 18px;border-radius:9px;background:#d8e8b1;color:#1b352b;font-weight:750}
.territory-active .battle-dock,.territory-active .battle-hud{pointer-events:none;opacity:.65}.bonus-cycle{font-size:10px;white-space:normal}
@media(max-width:700px){#territory-caption{left:10%;right:10%;padding:12px}#territory-caption strong{font-size:20px}}

/* Let the actual journey remain visible; the checkpoint caption occupies the inactive dock. */
#territory-caption{top:auto;bottom:max(14px,env(safe-area-inset-bottom));width:min(680px,92vw);padding:12px 16px;display:grid;grid-template-columns:1fr auto;gap:4px 16px;text-align:left;box-shadow:0 8px 35px #081a1666}
#territory-caption strong{font-size:18px;grid-column:1;line-height:1.25}
#territory-caption span{font-size:12px;grid-column:1;line-height:1.4}
#territory-caption button{grid-column:2;grid-row:1/3;align-self:center;margin:0;min-height:44px;padding:8px 14px}
@media(max-width:700px){#territory-caption{gap:4px 8px;padding:10px 12px}#territory-caption strong{font-size:15px}#territory-caption span{font-size:11px}#territory-caption button{font-size:12px;max-width:150px}}
/* 0.17: status captions sit above spending lanes, not over the debit. */
#battle-banner{top:calc(63px + env(safe-area-inset-top));max-width:72vw;white-space:normal;font-size:clamp(12px,1.6vw,16px);line-height:1.15}

/* Accurate economy / research state belongs beside the roster, not behind a modal. */
.discovery-status{font-size:11px;line-height:1.35;padding:4px 8px;border-top:1px solid #596548;max-height:36px;overflow:auto;color:#ecedd7;background:#15211deb}
.discovery-status[hidden]{display:none}.science-live{font-size:12px;margin:4px 8px;line-height:1.35}
#quick-drawer [data-lab-build],#quick-drawer [data-scientist-build]{min-height:40px;padding:6px 12px}
@media(max-height:390px){.discovery-status{font-size:10px;max-height:28px;padding:2px 6px}.science-live{font-size:11px}}
