.campaign-entry-heading{padding:10px 12px;border:1px solid #b9caa5;border-radius:7px;background:#e9edda;text-align:left;margin-bottom:10px}
.campaign-entry-heading strong,.campaign-entry-heading span{display:block}
.campaign-entry-heading strong{font-size:18px;color:#19464a}
.campaign-entry-heading span{font-size:11px;line-height:1.5;margin-top:3px;color:#52685a}
.campaign-preview,.campaign-shortcuts{border:1px solid #c0cdad;border-radius:6px;padding:0 10px;background:#f5f5e8;text-align:left}
.campaign-preview summary,.campaign-shortcuts summary{min-height:44px;display:flex;align-items:center;font-size:11px;font-weight:750;cursor:pointer}
.campaign-preview label{display:grid;grid-template-columns:1fr 98px;align-items:center;gap:8px;font-size:10px}
.campaign-preview select{min-height:44px;width:100%;font-size:12px}
#campaign-preview-detail{padding:10px 0}
#campaign-preview-detail strong{display:block;font-size:12px;color:#24564e}
#campaign-preview-detail p,#campaign-preview-detail small{font-size:10px!important;line-height:1.6!important;margin:6px 0 0!important;color:#52665a}
.campaign-shortcuts .intro-play-options{margin-bottom:9px}
#intro-chapter{width:100%;min-height:44px;margin:0 0 9px;font-size:11px;border:1px solid #a6b896;border-radius:5px;background:#e3ead8;color:#31564d}
.chapter-length{display:inline-block;padding:5px 9px;border-radius:5px;border:1px solid #b3c3a3;font-size:11px;color:#40634f;background:#e9efdf}
#play .overlay.campaign-intro .modal{display:flex;flex-direction:column;gap:0;max-width:760px;overflow:hidden;text-align:left}
.campaign-intro-body{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
#play .campaign-intro .intro-actions{flex:none;display:grid;grid-template-columns:1fr 1fr;gap:6px;border-top:1px solid #c1ccaf;padding-top:9px;margin-top:9px}
#play .campaign-intro .intro-actions button{min-height:44px!important;margin:0!important;font-size:12px!important;padding:9px}
#play .campaign-intro .intro-actions #intro-review{grid-column:1/-1}
.campaign-switch-body h2{font-size:24px!important}
.campaign-switch-body p{line-height:1.6}
.campaign-switch-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
#play .campaign-switch-actions button{min-height:44px;margin:0!important;font-size:12px}
#play:is([data-dialog=switch-defense],[data-dialog=switch-map]) .modal{display:flex;flex-direction:column;overflow:hidden;max-width:650px}
.campaign-switch-body{min-height:0;overflow:auto;overscroll-behavior:contain}
.campaign-switch-actions{flex:none;padding-top:9px;border-top:1px solid #bdc9ac}
.switch-map-pickers{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);align-items:start;gap:8px;text-align:left}
.switch-map-pickers select{width:100%;min-height:44px}
.switch-map-pickers>:is(.map-choice,.difficulty-choice,.hero-picker){display:block;min-width:0;margin:0;padding:8px}
.pause-links{display:flex;align-items:center;justify-content:center;gap:12px}
.pause-links button{min-height:44px}
@media(max-width:440px) and (orientation:portrait){.switch-map-pickers{grid-template-columns:1fr}}
.home-mode-card[data-mode=campaign]{border-color:#dfc17b99;box-shadow:inset 0 3px #e3c681}
.home-mode-card[data-mode=chapter]{border-color:#8fac9b77}
@media(max-height:550px) and (orientation:landscape){
 #play .overlay.campaign-intro .modal{padding:10px 16px;max-width:760px;max-height:100%}
 .campaign-entry-heading{padding:6px 9px;margin-bottom:5px}
 .campaign-entry-heading strong{font-size:16px}.campaign-entry-heading span{font-size:10px}
 #play .campaign-intro .hero-intro{margin:5px 0}
 #play .campaign-intro .intro-actions{padding-top:6px;margin-top:6px}
 .campaign-intro .intro-grid{margin:5px 0}
 #play:is([data-dialog=switch-defense],[data-dialog=switch-map]) .modal{padding:12px 18px;max-height:100%}
 #play .brief-overlay .pause-links{grid-column:1/-1;grid-row:6}
 .campaign-switch-body h2{margin:5px 0 8px}
 .campaign-switch-body .eyebrow{margin:0}
 .campaign-switch-body p{font-size:11px!important;margin:7px 0;line-height:1.45}
}
.hero-loadout{padding:10px 12px;border:1px solid #9ab69c;border-radius:8px;background:#e3eddd;color:#224c47;text-align:left}
.hero-loadout .hero-picker{display:block;font-size:11px}
.hero-loadout .hero-picker>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.hero-loadout .hero-picker select{width:100%;min-height:44px;border-radius:5px}
.loadout-preview{display:grid;grid-template-columns:68px minmax(0,1fr);gap:9px;align-items:center;margin-top:8px}
.loadout-preview img{width:68px;height:86px;object-fit:contain;filter:drop-shadow(0 4px 6px #173e4d38)}
.loadout-copy>strong{font-size:15px}
#play .loadout-copy p{font-size:11px!important;line-height:1.4;margin:4px 0!important;color:#2d554e}
.loadout-copy p b{display:block;color:#204743}
#play .launch-hero{display:block;font-size:10px;font-weight:650;line-height:1.15;margin-top:3px;opacity:.85}
@media(max-height:550px) and (orientation:landscape){
 .hero-loadout{padding:5px 9px}
 .hero-loadout .loadout-preview{grid-template-columns:50px minmax(0,1fr);margin-top:4px}
 .loadout-preview img{width:50px;height:62px}
 .loadout-copy>strong{font-size:13px}
}
.map-rank{display:block;color:#215e53;font-size:11px;margin-bottom:3px}
#play .campaign-intro .intro-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
#play .campaign-intro .intro-settings{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media(max-width:520px) and (orientation:portrait){
 #play .campaign-intro .intro-grid,#play .campaign-intro .intro-settings{grid-template-columns:1fr}
}
@media(max-height:550px) and (orientation:landscape){
 #play .campaign-intro .map-choice{padding:7px}
 #play .campaign-intro .island-preview svg{max-height:70px}
 #play .campaign-intro .map-choice select{min-height:44px}
 #play .campaign-intro .island-medals{display:none}
}
.loadout-header{display:block;font-size:13px;margin:0 0 5px}
.loadout-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}
.loadout-controls button{min-height:44px;border:1px solid #97b09a;border-radius:5px;background:#f0f4e8;color:#21554c;padding:0 8px;font-size:11px;font-weight:650}
#play .intro-actions .launch-hero,#play .chapter-actions .launch-hero{display:inline-flex;align-items:center;background:#072c271d;padding:3px 7px;border-radius:4px;margin:0 0 0 6px;opacity:1}
@media(max-height:550px) and (orientation:landscape){
 .campaign-entry-heading{display:flex;align-items:center;gap:9px;padding:5px 8px}
 .campaign-entry-heading span{margin:0;line-height:1.2}
 .loadout-copy p>b{display:inline}
 .loadout-copy p>b+span{display:none}
 .hero-loadout .loadout-preview{margin-top:4px}
}

@media(max-width:520px) and (orientation:portrait){
 #play .campaign-intro .loadout-controls .hero-picker{grid-column:auto;min-width:0}
 #play .campaign-intro .intro-actions .primary>span{display:none}
 #play .campaign-intro .intro-actions .launch-hero{padding:3px 4px;margin-left:3px}
}
#play .campaign-intro .campaign-entry-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(126px,.7fr);align-items:center;gap:10px}
#play .campaign-entry-heading .difficulty-choice{padding:0;margin:0;border:0;background:none}
#play .campaign-entry-heading .difficulty-choice label{margin:0 0 2px}
#play .campaign-entry-heading .difficulty-choice select{min-height:44px;padding:5px 8px}
#play .campaign-entry-heading #difficulty-description{display:none}
.campaign-entry-heading #opening-enemy-count{color:#305b50}
.campaign-entry-heading #opening-enemy-count span{display:inline;margin:0}
@media(max-height:550px) and (orientation:landscape){
 #play .campaign-intro .campaign-entry-heading{padding:4px 8px}
 #play .campaign-entry-heading .difficulty-choice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px;align-items:center}
}
@media(max-height:710px) and (max-width:520px) and (orientation:portrait){
 #play .campaign-intro .campaign-entry-heading{padding:5px 8px;margin-bottom:5px}
}

.campaign-local-towers{margin:0 0 5px;font-size:11px;line-height:1.4;color:#345d51}
