/* Shared, bounded icons: overrides generic card image rules. */
.planet-presences{margin:10px 0;padding:9px 10px;border:1px solid #ffffff26;border-radius:10px;background:#101318e8;text-align:left}
.presence-heading{font-size:10px;font-weight:700;letter-spacing:.08em;color:#ffe800;margin-bottom:7px}
.presence-list{display:flex;flex-wrap:wrap;gap:6px}
.presence-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 7px;border-radius:7px;background:#ffffff08;border:1px solid #ffffff1a;color:var(--presence-color);font-size:11px;font-weight:700;line-height:1.3}
.planet-presences .presence-chip>.presence-icon{display:block;flex:0 0 22px;width:22px;height:22px;max-width:22px;max-height:22px;min-width:22px;object-fit:contain;margin:0;padding:0;border:0;border-radius:0;position:static;opacity:1;transform:none;filter:none}
.presence-mask{background:var(--presence-color);-webkit-mask-image:var(--presence-image);mask-image:var(--presence-image);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.mapa-presence-icon.presence-svg{filter:brightness(0) saturate(100%)}
.mapa-presence-icon.presence-automaton.presence-svg{filter:brightness(0) saturate(100%) invert(35%) sepia(83%) saturate(2507%) hue-rotate(338deg) brightness(114%) contrast(109%)}
.mapa-presence-icon.presence-terminid.presence-svg{filter:brightness(0) saturate(100%) invert(78%) sepia(87%) saturate(1530%) hue-rotate(355deg) brightness(103%) contrast(108%)}
.mapa-presence-icon.presence-illuminate.presence-svg{filter:brightness(0) saturate(100%) invert(68%) sepia(29%) saturate(1838%) hue-rotate(214deg) brightness(100%) contrast(104%)}
@media(max-width:700px){.presence-chip{font-size:10px}.planet-presences{padding:8px}}
/* Patch 14: compact, accessible presence icons and ten-second notices. */
.planet-presences.presence-icons-only{margin:0;padding:0;border:0;background:none;width:auto}
.presence-icons-only .presence-chip{padding:4px;width:30px;height:30px;box-sizing:border-box;justify-content:center;background:#0b111bcc;border-color:var(--presence-color);animation:presence-glow 2.8s ease-in-out infinite}
.presence-icons-only.presence-stale .presence-chip{animation:none;opacity:.75}
.presence-chip:focus-visible{outline:2px solid #ffe800;outline-offset:2px}
@keyframes presence-glow{0%,100%{box-shadow:0 0 2px var(--presence-color)}50%{box-shadow:0 0 9px var(--presence-color)}}
.presence-vitrine{display:block;height:18px;line-height:18px;overflow:hidden;max-width:100%;font-size:10px;font-weight:700}
.presence-vitrine-track{display:block}
.presence-vitrine-row{display:block;height:18px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.presence-vitrine.is-rotating .presence-vitrine-track{animation:presence-notices var(--vitrine-duration) steps(var(--vitrine-count),end) infinite}
@keyframes presence-notices{to{transform:translateY(calc(var(--vitrine-count) * -18px))}}
@media(prefers-reduced-motion:reduce){.presence-icons-only .presence-chip,.presence-vitrine.is-rotating .presence-vitrine-track{animation:none}}
/* Full dossier keeps names; cards and map remain icon-only. */
.presence-labeled{margin:10px 0;background:#101820;border:1px solid #354250;border-radius:12px;padding:10px}
.presence-labeled .presence-chip{width:auto;height:auto;min-height:32px;padding:6px 8px;white-space:normal}
.presence-labeled .presence-name{color:var(--presence-color);font:700 11px/1.4 Arial,sans-serif}

/* Nave decorativa somente na presença catalogada da Frota de Invasão. */
.mapa-presence-ship .presence-ship-hull{animation:presence-ship-hover 4s ease-in-out infinite}
@keyframes presence-ship-hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
.presence-stale .presence-ship-hull,#mapa-pan-host.optimized-mode .presence-ship-hull{animation:none}
@media(prefers-reduced-motion:reduce){.mapa-presence-ship .presence-ship-hull{animation:none}}
/* Fichas sob demanda: nenhum polling, nenhuma foto antes de abrir. */
.presence-chip[role="button"],.mapa-presence-button{cursor:pointer}
.presence-gallery{box-sizing:border-box;width:min(620px,calc(100vw - 24px));max-height:85vh;max-height:85dvh;margin:auto;padding:18px;border:1px solid var(--presence-color,#ffe800);border-radius:18px;background:#101820;color:#dce5ed;box-shadow:0 20px 70px #000b;overflow:auto;overscroll-behavior:contain;font:13px/1.5 Arial,sans-serif}
.presence-gallery::backdrop{background:#0007}
.presence-gallery>header{display:flex;gap:12px;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid #ffffff24}
.presence-gallery [data-presence-heading]{display:flex;align-items:center;gap:12px;min-width:0}
.presence-gallery .presence-icon{display:block;flex:none;width:36px;height:36px;object-fit:contain}
.presence-gallery small{color:var(--presence-color);font-size:10px;letter-spacing:1px}
.presence-gallery h2{margin:3px 0 0;font:700 20px/1.3 Arial,sans-serif;color:#fff}
.presence-gallery [data-presence-close]{flex:none;align-self:flex-start;width:38px;height:38px;border:1px solid #586b79;border-radius:10px;background:#1c2a35;color:#fff;font-size:26px;cursor:pointer}
.presence-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.presence-gallery-grid figure{margin:0;overflow:hidden;border:1px solid #ffffff21;border-radius:12px;background:linear-gradient(145deg,#20303d,#101820)}
.presence-gallery-grid img{display:block;width:100%;height:155px;object-fit:contain;padding:8px;box-sizing:border-box;filter:none}
.presence-gallery-grid figcaption{padding:8px;font:700 11px/1.4 Arial,sans-serif;text-align:center;color:#eef2f5;overflow-wrap:anywhere}
.presence-gallery-note,.presence-gallery-missing{padding:10px;border-left:3px solid var(--presence-color);background:#ffffff06;color:#bac8d3;font-size:11px}
.presence-gallery-context{color:#ffe800;font-weight:bold}
.presence-gallery-allied{display:flex;align-items:center;gap:12px;padding:25px;color:#42bfff}
.presence-gallery button:focus-visible,.presence-chip:focus-visible,.mapa-presence-button:focus-visible{outline:2px solid #ffe800;outline-offset:3px}
@media(max-width:600px){.presence-gallery{padding:14px}.presence-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.presence-gallery-grid img{height:140px}}
