.ops-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.campaign-card,.ops-card{position:relative;overflow:hidden;background:linear-gradient(125deg,#203946ed,#0b1b28f5);border:1px solid #7599a44d;border-radius:10px;box-shadow:0 12px 35px #0003}
.campaign-card{display:grid;grid-template-columns:minmax(190px,30%) minmax(0,1fr);gap:30px;padding:30px;align-items:center;background:radial-gradient(ellipse at 15% 30%,#35677655,transparent 60%),linear-gradient(120deg,#182f3dea,#081822f2)}
.campaign-card h2{font-size:clamp(24px,3vw,36px);font-weight:550;letter-spacing:-.6px;line-height:1.2;margin:12px 0 18px}
.campaign-card p,.ops-card p{font-size:15px;line-height:1.7;color:#adc3ca;margin:12px 0 18px}.campaign-card small{display:block;color:#91a9b5;line-height:1.6;margin-top:12px}
.ops-ship{display:block;width:100%;height:180px;object-fit:contain;filter:drop-shadow(0 15px 12px #0008);background:radial-gradient(ellipse,#518b9826,transparent 68%)}
.campaign-card>.ops-ship{height:300px;transform:rotate(-12deg)}
.ops-card{padding:24px;display:flex;flex-direction:column;gap:12px}.ops-card>.ops-ship{margin:-10px 0 0}.ops-card h3{margin:0;font-size:23px;font-weight:550}.ops-card p{margin:0}.ops-card>.section-kicker{font-size:11px;line-height:1.6}.ops-card .secondary-button{width:100%}
.ops-actions{display:flex;flex-wrap:wrap;gap:10px}.ops-actions>button{flex:1 1 150px}.ops-card>.ops-actions{margin-top:auto}
.chapter-progress{display:flex;gap:16px;justify-content:space-between;padding:16px 0;color:#eac089;font-family:var(--mono);font-size:14px}.chapter-progress strong{color:#a0e4d2}.chapter-dots{display:flex;gap:10px;margin-top:24px}.chapter-dots span{display:grid;place-items:center;width:34px;height:34px;border:1px solid #657c874d;border-radius:50%;font:12px var(--mono);color:#8b9ea8}.chapter-dots .done{background:#235448;color:#b1efdb}.chapter-dots .current{border-color:#edb573;color:#edc99a}
.mission-state{padding:12px 14px;background:#101f29;border-left:3px solid #708c9b;color:#acc2ca;font-size:13px;line-height:1.5}.mission-state.ready{border-color:#80dcc3;color:#b3edda}.mission-state.failed{border-color:#c68d6f;color:#e4b399}
.obstacle-list{display:grid;gap:10px;padding:14px;background:#09182277;border-radius:5px}.obstacle-list>div{display:grid;gap:5px}.obstacle-list span{font-size:14px;color:#d2e1e4}.obstacle-list small{font-size:12px;color:#9cb2bb;line-height:1.5}.ops-card .policy-summary{font-size:12px;color:#85b9ba}
.voyage-options{display:grid;gap:10px}.voyage-options button{text-align:left}.voyage-options small{display:block;font-size:11px;color:#9db7bf;margin-top:6px;line-height:1.6}
.radio-log{background:#081922aa;border:1px solid #67879540;padding:10px 22px;border-radius:8px}.radio-log p{padding:14px 0;margin:0;border-bottom:1px solid #78929c22;font:13px/1.8 var(--mono);color:#a7c5c8}.radio-log p:last-child{border:0}.radio-log p:first-child{color:#b6eadc}
.protection-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 24px}.protection-list label{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px;background:#18303c;border:1px solid #78929c33;border-radius:5px}.protection-list input{width:20px;height:20px;accent-color:#7dd7be}.profile-descriptions p{font-size:13px!important}
#mission-details-open{font-size:12px;line-height:1.5;padding:10px 12px;margin:12px 0 0;text-align:left;width:100%;color:#a4ded0;border-color:#5d9b8e66;background:#122e30}
#assembly-work{width:100%;margin-top:7px;min-height:44px;font-size:12px;padding:9px}
#toast:not([hidden]){animation:radio-arrival .25s ease-out}
@keyframes radio-arrival{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
.reduced-motion #toast{animation:none}
@media(max-width:760px){.ops-grid{grid-template-columns:1fr}.campaign-card{gap:12px;padding:22px;grid-template-columns:1fr}.campaign-card>.ops-ship{height:180px;transform:none}.ops-card{padding:20px}.ops-ship{height:170px}}
@media(max-width:760px){.view-tabs{flex-wrap:nowrap}.view-tabs>button{flex:1 1 0!important;min-width:0;min-height:44px;font-size:12px!important;padding:6px!important;white-space:normal!important}.view-tabs span{display:none}body[data-view="operations"] .game-shell{padding-bottom:25px}body[data-view="salvage"].has-assembly .view-tabs{bottom:calc(255px + env(safe-area-inset-bottom))}body[data-view="salvage"].has-assembly .toast{bottom:360px}.chapter-progress{flex-wrap:wrap}.ops-actions{flex-direction:column}.ops-actions>button{flex:auto}.protection-list{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){#toast{animation:none!important}}
