#campaign-dialog{width:min(1060px,calc(100vw - 32px));max-width:1060px;padding:26px;max-height:92dvh;overflow-y:auto} .campaign-banner{padding:30px;border:1px solid #5e95ab55;background:linear-gradient(90deg,#0a1827ee,#102c44b0),url('./assets/battlefield-skyport-v4.webp') center/cover;border-radius:6px} .campaign-banner h2{font-size:30px;margin:12px 0;color:#e5f4fc}.campaign-banner p{color:#98b8ca}.campaign-numbers{display:flex;gap:45px;margin-top:24px}.campaign-numbers span{display:grid;gap:7px;color:#87a1b1;font-size:11px}.campaign-numbers b{font-size:25px;color:#c5f277;font-family:monospace}.campaign-numbers small{font-size:12px;color:#91aabd}.chapter-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:22px 0}.chapter-tabs button{background:#0d1e2c;border:1px solid #284354;padding:12px 8px;display:grid;gap:6px;color:#aec2cd;border-radius:4px;font:inherit;font-size:12px;text-align:left}.chapter-tabs small{color:#6090a9;font-size:9px}.chapter-tabs span{color:#6e95a9;font:10px monospace}.chapter-tabs button.active,.mission-card.active{border-color:#91c955;background:#c5f2770d;box-shadow:inset 3px 0 #c5f277}.campaign-heading{display:flex;align-items:center;justify-content:space-between;margin:25px 0 15px}.campaign-heading h3,.mission-brief h3{font-size:21px;margin:7px 0}.campaign-heading p{color:#88a4b5;font-size:12px}.mode-tabs{display:flex;gap:5px}.mode-tabs button{padding:10px 16px;border:1px solid #315165;background:#102332;color:#89adbf;border-radius:4px}.mode-tabs .active{border-color:#86b2ca;color:#ddf2ff}.mission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mission-card{display:grid;gap:11px;padding:16px;text-align:left;border:1px solid #2e4f63;border-radius:4px;background:#102434;color:#d1e4ef;font:inherit}.mission-index{display:flex;align-items:center;justify-content:space-between;font:22px monospace;color:#66d6e8}.mission-index small{font:10px sans-serif;color:#829caa}.mission-card strong{font-size:15px}.mission-card>span:not(.mission-index){font-size:11px;color:#8bafc1}.mission-stars{color:#c5f277;letter-spacing:3px}.mission-card.locked{opacity:.55}.mission-brief{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;margin:22px 0;padding:22px;border:1px solid #274556;border-radius:4px;background:#0b1c29}.mission-brief p{color:#9ab5c6;font-size:12px;line-height:1.9}.brief-goal{display:grid;gap:7px;padding:12px;border-left:2px solid #66d6e8;background:#66d6e807;font-size:12px}.brief-goal b{color:#66d6e8}.brief-goal span{color:#94afc0;line-height:1.7}.brief-note{font-size:11px!important}.wave-preview>div{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid #2c455166;font-size:11px;color:#9fc1d5;line-height:1.8}.wave-preview b{color:#66d6e8;font-family:monospace}.chapter-rewards{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:20px 0}.chapter-rewards>span{font-size:12px;color:#86a4b5;margin-right:auto}.chapter-rewards button{font-size:11px}.campaign-actions{display:flex;gap:10px;justify-content:flex-end}.optional-reward{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;padding:16px;background:#66d6e805;border:1px solid #284456}.optional-reward>div{display:grid;gap:7px;margin-right:auto;font-size:12px}.optional-reward small,.ad-status-note{color:#87a3b3;font-size:11px;line-height:1.8}.optional-reward button{font-size:12px}.research-heading{display:flex;justify-content:space-between;align-items:center;margin:28px 0 14px;font-size:14px;color:#b1cad9}.research-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.research-card{padding:18px;border:1px solid #315264;border-radius:4px;background:#102331}.research-card p{font-size:12px;color:#89a6b8;line-height:1.8}.research-ranks{display:flex;gap:5px;margin:14px 0}.research-ranks i{height:4px;width:20%;background:#233e50}.research-ranks .on{background:#c5f277}.campaign-progress{font-size:11px;color:#81a3b6;margin:12px 0;line-height:1.8}.chapter-select{width:100%;padding:10px;background:#10283a;color:#b8d6e7;border:1px solid #345a70;font:12px sans-serif;border-radius:4px;margin-bottom:8px}.mission-rule{display:flex;gap:10px;padding:9px 12px;margin-bottom:10px;border:1px solid #315064;border-radius:4px;font-size:11px;line-height:1.6;color:#82a9c0}.mission-rule b{white-space:nowrap;color:#9cceda}.result-card{max-height:100%;overflow:auto}.result-card .optional-reward{justify-content:center}.result-card .optional-reward>div{width:100%;margin:0}.result-card .optional-reward small{max-width:100%}.result-card .optional-reward button,.result-card .result-buttons button{font-size:12px;min-height:44px}.result-card .optional-reward button{background:#182d3a;color:#c4dce9;border:1px solid #3a6074}.result-buttons{flex-wrap:wrap}.result-mastered{color:#66d6e8;font-size:12px;line-height:1.8;margin:12px 0}.ad-lock{position:fixed;inset:0;z-index:5000;background:#07131aee;display:grid;place-content:center;gap:15px;text-align:center;color:#c5f277}.ad-lock[hidden]{display:none}.ad-lock p{color:#b0cad9;font-size:13px}.ad-spinner{width:32px;height:32px;border:2px solid #c5f27744;border-top-color:#c5f277;border-radius:50%;margin:auto;animation:adspin 1s linear infinite}@keyframes adspin{to{transform:rotate(360deg)}}
@media(max-width:700px){#campaign-dialog{padding:15px;width:calc(100vw - 18px);max-height:94dvh}.campaign-banner{padding:20px}.campaign-banner h2{font-size:24px}.campaign-numbers{gap:18px;flex-wrap:wrap}.campaign-numbers b{font-size:21px}.chapter-tabs{grid-template-columns:repeat(2,1fr)}.chapter-tabs button{padding:10px}.campaign-heading{display:block}.mode-tabs{margin-top:15px}.mission-grid{grid-template-columns:repeat(2,1fr)}.mission-card{padding:12px}.mission-card>span:not(.mission-index){font-size:10px}.mission-brief{grid-template-columns:1fr;padding:15px;gap:14px}.chapter-rewards button{padding:10px 9px}.chapter-rewards>span{width:100%}.campaign-actions{display:grid;grid-template-columns:1fr 1fr}.campaign-actions button{font-size:12px;padding:12px 8px}.research-grid{grid-template-columns:1fr}.optional-reward button{flex:1;min-width:120px}.mission-rule{display:block}.mission-rule b{display:block;margin-bottom:4px}}

.touch-mode .result-overlay{position:fixed;inset:0;z-index:600;padding:20px;background:#06121de8}.touch-mode .result-card{width:min(430px,100%);max-height:90dvh;background:#102737;border:1px solid #3a6379;border-radius:6px;padding:22px}

.ad-offer-present .campaign-actions button,.ad-offer-present .optional-reward button,.result-card.ad-offer-present .result-buttons button{font-size:12px;min-height:44px;padding:12px 16px;background:#182d3a;color:#c4dce9;border:1px solid #3a6074}
