.sniper-briefing-art { display:block; width:calc(100% + 44px); height:116px; margin:-22px -22px 18px; object-fit:cover; object-position:50% 48%; }
.sniper-briefing { padding:22px; border-bottom:1px solid var(--edge); background:linear-gradient(120deg,#111b20,#222b29); }
.sniper-briefing h2 { margin:7px 0 12px; font:700 27px/1.1 var(--display); }
.sniper-briefing p { color:#c5d0cf; font-size:14px; line-height:1.5; }
.sniper-briefing .tag { color:#e0be78; font-size:11px; }
.sniper-briefing .sniper-help { font-size:12px; }
.sniper-mode .mission-hud { width:274px; font-size:13px; }
.sniper-mode #mission-hp,.sniper-mode #mission-shields { font-size:12px; letter-spacing:0; }
.sniper-mode .mission-hud > strong { font-size:15px; }
.sniper-allies { display:grid; gap:7px; padding-block:10px; margin-top:5px; border-top:1px solid #61706a; }
.sniper-ally { display:grid; grid-template-columns:1fr auto; gap:3px 8px; font-size:12px; line-height:1.2; }
.sniper-ally b { color:#b3dce7; font-size:12px; }
.sniper-ally > i { grid-column:1/-1; height:3px; background:#394640; }
.sniper-ally em { display:block; height:100%; background:#77bfd0; }
.sniper-ally.lost { color:#a0aaa7; }
.sniper-ally.lost b { color:#ee9e8b; }
.sniper-stage { margin-top:5px; color:#f1ce89; font-size:14px; font-weight:700; }
.sniper-mode .mission-route { font-size:12px; line-height:1.4; letter-spacing:0; }
.sniper-orders { display:flex; gap:7px; margin-top:12px; pointer-events:auto; }
.sniper-orders button,.sniper-tools button { min-height:42px; border:1px solid #7a8a80; background:#17251f; color:#f1f3eb; font:700 14px var(--ui); padding:8px 12px; cursor:pointer; }
.sniper-orders button { flex:1; }
.sniper-orders button[aria-pressed=true] { background:#c39c52; color:#101b17; border-color:#f1ce89; }
.sniper-orders button:disabled { opacity:.6; cursor:default; }
.sniper-status { display:flex; justify-content:space-between; gap:8px; margin-top:10px; color:#c1cec6; font-size:12px; }
.sniper-stealth { font-weight:700; white-space:nowrap; }
.sniper-stealth[data-state=hidden] { color:#8fd6a5; }
.sniper-stealth[data-state=seen] { color:#f1ce89; }
.sniper-stealth[data-state=revealed] { color:#ffad6b; }
.sniper-stealth[data-state=exposed] { color:#ff7866; }
.sniper-tools { position:absolute; right:22px; top:394px; display:flex; gap:6px; z-index:8; }
.sniper-tools kbd { font-size:11px; margin-left:6px; }
#sniper-fire { display:none; background:#955b35; }
.sniper-scope { display:none; position:absolute; inset:0; pointer-events:none; z-index:5; box-shadow:inset 0 0 50px 12px #07120f99; }
.sniper-scoped .sniper-scope { display:block; }
.sniper-scoped #crosshair { display:none; }
.scope-reticle { position:absolute; left:50%; top:50%; width:26px; height:26px; border:1px solid #f5f3df; border-radius:50%; transform:translate(-50%,-50%); filter:drop-shadow(0 1px 1px #000); }
.scope-reticle::before,.scope-reticle::after { content:''; position:absolute; background:#f5f3df; }
.scope-reticle::before { width:1px; height:68px; top:-22px; left:12px; }
.scope-reticle::after { height:1px; width:68px; left:-22px; top:12px; }
#sniper-range { position:absolute; left:50%; top:calc(50% + 42px); transform:translateX(-50%); margin:0; padding:5px 10px; background:#102018de; color:#f8f4df; font-size:13px; white-space:nowrap; }
.scope-exit { position:absolute; bottom:90px; left:50%; transform:translateX(-50%); color:#e3e9dc; background:#102018b8; padding:4px 8px; font-size:12px; }
.sniper-priority { position:absolute; z-index:3; pointer-events:none; color:#f8d27b; font:700 27px Arial,sans-serif; transform:translate(-50%,-100%); text-shadow:0 1px 3px #000; }
.sniper-mode .mission-dialog::before { content:'Operation 03 · Sniper Support'; }
.sniper-mode .mission-summary { white-space:pre-line; }
.sniper-mode .mission-map { width:152px; height:152px; }
.sniper-mode .mission-notice { font:700 14px/1.4 var(--ui); text-transform:none; letter-spacing:0; padding:9px 15px; }
.sniper-mode .assault-low-hull { font-size:12px; }
@media(pointer:coarse) { .sniper-scoped #sniper-fire { display:block; } }
@media(max-width:900px) {
 .sniper-mode .d-title { display:none; }
 .sniper-mode .mission-hud { top:12px; left:14px; width:calc(50% - 28px); max-width:200px; padding:10px; }
 .sniper-mode .mission-hud > strong { display:none; }
 .sniper-mode #mission-hp,.sniper-mode #mission-shields { font-size:11px; }
 .sniper-mode .mission-hud .health { margin:3px 0 6px; }
 .sniper-mode .sniper-allies { gap:5px; padding-block:6px; }
 .sniper-mode .sniper-ally > i { display:none; }
 .sniper-mode .mission-route { display:none; }
 .sniper-mode .sniper-stage { font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
 .sniper-mode .sniper-status { font-size:11px; flex-wrap:wrap; margin-top:7px; }
 .sniper-mode .sniper-orders { margin-top:8px; gap:4px; }
 .sniper-mode .sniper-orders button { font-size:12px; padding:5px; }
 .sniper-mode .mission-map-frame { top:120px; right:14px; padding:5px; }
 .sniper-mode .mission-map { width:116px; height:116px; }
 .sniper-mode .speedo { display:none; }
 .sniper-mode .sound { top:12px; right:14px; }
 .sniper-mode .mission-pause { top:58px; right:14px; font-size:11px; }
 .sniper-tools { right:14px; top:270px; display:grid; grid-template-columns:1fr 48px; width:126px; gap:5px; }
 .sniper-tools button { font-size:12px; padding:5px; }
 .sniper-tools kbd { display:none; }
 .sniper-scoped #sniper-fire { display:block; grid-column:1/-1; }
 .sniper-mode .mission-notice { top:auto; bottom:180px; width:calc(100% - 32px); max-width:none; font-size:12px; }
 .scope-exit { display:none; }
 .sniper-scoped .mission-route { display:none; }
 .sniper-scoped .sniper-stage { font-size:12px; }

}
@media(min-width:600px) and (max-height:500px) {
 .sniper-mode .mission-hud { top:8px; width:220px; max-width:none; padding:6px 8px; }
 .sniper-mode .mission-hud .health { height:4px; margin:2px 0 4px; }
 .sniper-mode .assault-low-hull { margin-top:5px; padding:4px 6px; font-size:12px; line-height:1.2; }
 .sniper-mode .mission-hud > strong,.sniper-mode .mission-route,.sniper-mode #mission-shields,.sniper-mode .health.shield { display:none; }
 .sniper-mode .sniper-allies { padding-block:4px; margin-top:3px; gap:4px; grid-template-columns:repeat(3,minmax(0,1fr)); }
 .sniper-mode .sniper-ally { display:flex; flex-direction:column; align-items:center; gap:1px; }
 .sniper-mode .sniper-ally { font-size:11px; }
 .sniper-mode .sniper-ally > i { display:none; }
 .sniper-mode .sniper-orders button { min-height:34px; }
 .sniper-mode .sniper-orders { margin-top:5px; }
 .sniper-mode .sniper-status { margin-top:5px; }
 .sniper-mode .mission-map-frame { top:8px; right:14px; }
 .sniper-mode .mission-map { width:80px; height:80px; }
 .sniper-mode .map-heading { display:none; }
 .sniper-mode .sound { top:8px; left:250px; right:auto; }
 .sniper-mode .mission-pause { top:47px; left:250px; right:auto; }
 .sniper-tools { top:8px; right:116px; width:auto; display:flex; }
 .sniper-tools button { min-height:34px; }
 .sniper-mode .mission-notice { left:250px; top:84px; bottom:auto; transform:none; width:calc(100% - 450px); max-width:none; padding:5px 8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
 .sniper-mode .wbar { display:grid; grid-template-columns:repeat(var(--assault-slot-count,4),minmax(0,1fr)); max-width:none; width:calc(100% - 200px); }
 .sniper-mode .wslot,.sniper-mode .wslot.ability { grid-column:auto; min-width:0; width:auto; }
 .sniper-mode .wstate { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
}

.sniper-scoped .assault-damage-direction { top:50%; }

@media(max-width:450px) {
 .sniper-mode .wslot kbd { display:none; }
 .sniper-mode .wstate { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
}

@media(min-width:600px) and (max-height:350px) {
 .sniper-mode .mission-map-frame { top:4px; padding:4px; }
 .sniper-mode .sniper-stage { display:none; }
}
