/* Alerta modular de ataques recebidos — inspirado no aviso por trompa dos jogos de estratégia. */
.incoming-attack-edge {
  position:fixed;
  inset:0;
  z-index:89;
  pointer-events:none;
  border:5px solid rgba(214,28,22,.72);
  box-shadow:
    inset 0 0 34px rgba(255,31,22,.72),
    inset 0 0 110px rgba(147,0,0,.36),
    0 0 18px rgba(255,34,20,.48);
  animation:incoming-edge-pulse 1.35s ease-in-out infinite;
}

@keyframes incoming-edge-pulse {
  0%,100% { opacity:.46; box-shadow:inset 0 0 26px rgba(255,31,22,.62),inset 0 0 85px rgba(147,0,0,.28),0 0 12px rgba(255,34,20,.34); }
  50% { opacity:1; box-shadow:inset 0 0 48px rgba(255,45,28,.9),inset 0 0 145px rgba(147,0,0,.48),0 0 28px rgba(255,34,20,.64); }
}

.incoming-attack-horn {
  position:fixed;
  z-index:190;
  top:218px;
  /* Posição de reserva; o JavaScript centra a trombeta por baixo do painel do jogador. */
  left:28px;
  width:104px;
  min-height:112px;
  padding:4px 7px 8px;
  border:2px solid #ffce63;
  border-radius:15px 15px 18px 18px;
  color:#fff7d2;
  background:linear-gradient(180deg,#7e100d 0%,#bd1610 48%,#5e0707 100%);
  box-shadow:0 7px 20px #000b,inset 0 1px #ffdf9d99,inset 0 -8px 18px #3e0000aa;
  text-shadow:0 2px 3px #310000;
  cursor:pointer;
  animation:incoming-horn-breathe 1.15s ease-in-out infinite;
}
.incoming-attack-horn:hover { filter:brightness(1.12); transform:translateY(-1px) scale(1.02); }
.incoming-attack-horn-art { display:block; width:74px; height:61px; margin:0 auto -2px; filter:drop-shadow(0 3px 3px #210000); }
.incoming-attack-horn-art svg { display:block; width:100%; height:100%; }
.incoming-attack-count {
  position:absolute;
  top:-8px;
  right:-8px;
  min-width:28px;
  height:28px;
  padding:0 5px;
  display:grid;
  place-items:center;
  border:2px solid #fff0a2;
  border-radius:50%;
  background:#1a1110;
  color:#ffdb54;
  font-size:14px;
  box-shadow:0 3px 9px #000b;
}
.incoming-attack-caption { display:block; font-size:11px; font-weight:950; letter-spacing:1.2px; }
.incoming-attack-horn small { display:block; margin-top:3px; color:#fff; font-size:13px; font-weight:950; }
@keyframes incoming-horn-breathe { 0%,100%{box-shadow:0 7px 20px #000b,0 0 0 0 rgba(255,44,24,.3),inset 0 1px #ffdf9d99,inset 0 -8px 18px #3e0000aa}50%{box-shadow:0 7px 20px #000b,0 0 0 9px rgba(255,44,24,0),inset 0 1px #ffdf9d99,inset 0 -8px 18px #3e0000aa} }

.incoming-attacks-modal { width:min(820px,94vw); border-color:#b64031; }
.incoming-attacks-panel { display:grid; gap:12px; }
.incoming-attacks-warning {
  display:flex;
  align-items:center;
  gap:13px;
  padding:11px 14px;
  border:1px solid #c24738;
  border-radius:10px;
  background:linear-gradient(90deg,#5f1111,#2a2020);
}
.incoming-attacks-warning > span { width:62px; height:50px; flex:0 0 auto; }
.incoming-attacks-warning svg { width:100%; height:100%; }
.incoming-attacks-warning strong,.incoming-attacks-warning small { display:block; }
.incoming-attacks-warning strong { color:#ffd38a; font-size:17px; }
.incoming-attacks-warning small { margin-top:3px; color:#e3c9c5; }
.incoming-attack-card {
  border:1px solid #7c534b;
  border-radius:11px;
  overflow:hidden;
  background:linear-gradient(#2d2928,#201c1c);
  box-shadow:0 8px 18px #0005;
}
.incoming-attack-card > header {
  display:grid;
  grid-template-columns:58px 1fr auto;
  align-items:center;
  gap:11px;
  padding:10px 12px;
  background:linear-gradient(90deg,#5a1714,#382421 62%,#251c1a);
  border-bottom:1px solid #7e4b43;
}
.incoming-card-horn { width:54px; height:46px; }
.incoming-card-horn svg { width:100%; height:100%; }
.incoming-attack-card h4 { margin:0 0 2px; color:#ffcf6b; font-size:15px; }
.incoming-attack-card header strong,.incoming-attack-card header small { display:block; }
.incoming-attack-card header small { color:#c9b5af; margin-top:2px; }
.incoming-card-countdown { min-width:110px; text-align:center; padding:7px 10px; border:1px solid #c27140; border-radius:8px; background:#160d0ccc; }
.incoming-card-countdown span,.incoming-card-countdown b { display:block; }
.incoming-card-countdown span { color:#c9a99e; font-size:10px; text-transform:uppercase; letter-spacing:.7px; }
.incoming-card-countdown b { margin-top:2px; color:#fff0b3; font-size:18px; }
.incoming-attack-route-summary { display:grid; grid-template-columns:1fr 40px 1fr; align-items:center; gap:7px; padding:11px 13px 6px; text-align:center; }
.incoming-attack-route-summary div { padding:7px; border:1px solid #4d4542; border-radius:7px; background:#171819; }
.incoming-attack-route-summary small,.incoming-attack-route-summary b { display:block; }
.incoming-attack-route-summary small { color:#9f9995; }
.incoming-attack-route-summary > span { color:#e54838; font-size:25px; font-weight:900; }
.incoming-attack-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; padding:7px 13px 11px; }
.incoming-attack-stats span { padding:8px; border:1px solid #4d4542; border-radius:7px; background:#171819; }
.incoming-attack-stats small,.incoming-attack-stats b { display:block; }
.incoming-attack-stats small { color:#9f9995; font-size:10px; }
.incoming-attack-stats b { margin-top:3px; color:#f0e3d4; }
.incoming-attack-actions { display:flex; justify-content:flex-end; gap:8px; padding:10px 13px; border-top:1px solid #433834; background:#1a1717; }
.incoming-attack-ended { opacity:.52; filter:grayscale(.5); }

.incoming-map-routes {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:5;
  pointer-events:none;
  overflow:visible;
}
.incoming-map-routes line {
  stroke:#d9251b;
  stroke-width:9;
  stroke-linecap:round;
  stroke-dasharray:23 17;
  marker-end:url(#incomingRouteArrow);
  filter:drop-shadow(0 0 7px #ff3b27) drop-shadow(0 3px 3px #320000);
  animation:incoming-route-flow 1.1s linear infinite;
}
.incoming-map-routes marker path { fill:#f03624; stroke:#60110b; stroke-width:1; }
@keyframes incoming-route-flow { to { stroke-dashoffset:-40; } }

.incoming-map-army {
  position:absolute;
  z-index:12;
  width:130px;
  transform:translate(-50%,-50%);
  text-align:center;
  pointer-events:none;
}
.incoming-map-army button {
  pointer-events:auto;
  position:relative;
  width:58px;
  height:58px;
  border:3px solid #ffc168;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#ff684e,#9e0b08 58%,#3b0303);
  color:#fff4cb;
  box-shadow:0 6px 14px #000b,0 0 15px #ff2d1d99;
  cursor:pointer;
  animation:incoming-army-pulse 1s ease-in-out infinite;
}
.incoming-map-army-icon { font-size:27px; text-shadow:0 2px 3px #240000; }
.incoming-map-army button b { position:absolute; right:-5px; top:-8px; width:22px; height:22px; display:grid; place-items:center; border:2px solid #fff0a0; border-radius:50%; background:#1e1110; color:#ff3e28; }
.incoming-map-army > small { display:block; width:max-content; max-width:180px; margin:3px auto 0; padding:4px 7px; border:1px solid #ef604d; border-radius:5px; color:#ffe9c0; background:#2b0909e8; box-shadow:0 3px 8px #0009; }
.incoming-map-army > small strong,.incoming-map-army > small span { display:block; }
.incoming-map-army > small span { margin-top:1px; color:#fff; font-weight:900; }
@keyframes incoming-army-pulse { 0%,100%{transform:scale(.96)}50%{transform:scale(1.06)} }

@media (max-width:1200px) {
  .incoming-attack-horn { width:91px; min-height:102px; }
  .incoming-attack-horn-art { width:66px; height:54px; }
  .incoming-attack-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* v0.1.156 — trombeta colocada por baixo do painel do jogador e acima do brasão em z-index. */
