/* arena.css — série, navegador, placar, objetivos, mesa (rosters | rails | minimapa), feed.
   interface de produção · LoL Live Fusion redesign 2026-09.
   Tokens de tokens.css, com roxo do Barão ajustado nesta arena; chips/banners/btn vêm de base.css. Breakpoints: 1439 / 1023 / 820. */

.arena{
  --baron:#a86bff;
  --baron-dim:rgba(168,107,255,.22);
  --marker-px:21;               /* tamanho do marcador no mapa (px; a arte do símbolo ocupa ~75% da caixa → ~16px visíveis) */
  --pc-portrait:40px;
  --pc-pad:6px;
  --pc-item:16px;
  display:flex;flex-direction:column;gap:var(--s-5);
  width:100%;max-width:var(--w-max);margin:0 auto;padding:var(--s-5) var(--s-6) var(--s-9);
  min-width:0;
}
.arena.is-switching > *{animation:lf-fade-in var(--t-fast) var(--ease-out) both}
@keyframes lf-fade-in{from{opacity:.55}to{opacity:1}}
.lf-icon{display:inline-block;vertical-align:middle;flex:0 0 auto}
.lf-icon.is-gold{color:var(--gold)}
.lf-icon.is-death{color:var(--text-3)}
.lf-icon.is-exec{color:var(--stale)}
.chip--xs{font-size:var(--fs-micro);padding:1px 6px;letter-spacing:.05em}
.arena .missing{font-style:normal}
.arena-placeholder{display:flex;align-items:center;justify-content:center;gap:var(--s-4);min-height:220px;border:1px dashed var(--line);border-radius:var(--r-4);color:var(--text-3);font:600 var(--fs-small)/1.3 var(--font-sans);text-align:center;padding:var(--s-6)}

/* retrato (fallback local; assets.js pode redefinir .portrait) */
.portrait{position:relative;display:inline-block;width:var(--size,40px);height:var(--size,40px);border-radius:var(--r-2);overflow:hidden;background:var(--panel-3);flex:0 0 auto}
.portrait img{width:100%;height:100%;object-fit:cover;display:block}
.portrait__sigil{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font:700 max(10px,calc(var(--size,40px) * .36))/1 var(--font-mono);letter-spacing:.02em;color:var(--text);background:linear-gradient(145deg,var(--panel-3),var(--line-strong))}
.portrait img[hidden]+.portrait__sigil{display:flex}

/* ---------------------------------------------------------------- */
/* 1. Barra de série                                                 */
/* ---------------------------------------------------------------- */
.series-bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-4) var(--s-6);padding:var(--s-4) var(--s-6);border:1px solid var(--line);border-radius:var(--r-3);background:var(--panel);box-shadow:var(--el-1);min-width:0}
.series-bar__back{display:inline-flex;align-items:center;gap:var(--s-3);font:600 var(--fs-small)/1 var(--font-sans);color:var(--text-2);white-space:nowrap}
.series-bar__back:hover{color:var(--text)}
.series-bar__meta{display:flex;align-items:center;gap:var(--s-3);font:600 var(--fs-small)/1.2 var(--font-sans);color:var(--text-2);letter-spacing:.02em;min-width:0;flex-wrap:wrap}
.series-bar__sep,.scorebar__sep{color:var(--text-4)}
.series-bar__score{display:flex;align-items:center;gap:var(--s-4);font:600 var(--fs-small)/1.2 var(--font-sans);color:var(--text);margin-left:auto;min-width:0;flex-wrap:wrap}
.series-bar__num{font-size:var(--fs-body);color:var(--text);padding:1px 6px;border-radius:var(--r-1);background:var(--panel-3)}
.series-bar__sources{display:flex;gap:var(--s-2);flex-wrap:wrap;min-width:0}

/* ---------------------------------------------------------------- */
/* 2. Navegador de mapas                                             */
/* ---------------------------------------------------------------- */
.map-nav{min-width:0}
.map-nav__scroll{display:flex;gap:var(--s-2);padding:0 0 2px;overflow-x:auto;scrollbar-width:thin;border-bottom:1px solid var(--line)}
.map-tab{position:relative;display:inline-flex;align-items:center;gap:var(--s-3);min-height:36px;padding:0 var(--s-5);border-radius:var(--r-2) var(--r-2) 0 0;color:var(--text-2);font:600 var(--fs-small)/1 var(--font-sans);white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}
.map-tab:hover{color:var(--text);background:var(--panel-2)}
.map-tab .map-tab__label{display:inline-flex;align-items:center;gap:var(--s-3);padding:3px 8px;border-radius:var(--r-pill);border:1px solid transparent}
.map-tab.is-selected{color:var(--gold);border-bottom-color:var(--gold)}
.map-tab.is-selected .map-tab__label{background:var(--gold-dim);border-color:rgba(255,208,79,.45)}
.map-tab--not_played,.map-tab--not_necessary,.map-tab--unavailable{color:var(--text-3)}
.map-tab--not_played .map-tab__label{border-style:dashed;border-color:var(--line)}
.map-tab--live .map-tab__label{border-color:rgba(66,232,160,.35)}
.map-tab--paused .map-tab__label{border-color:rgba(255,208,79,.35)}
.map-tab--partial .map-tab__label{border-color:rgba(255,157,61,.4)}
.map-tab__win{width:8px;height:8px;border-radius:50%;flex:0 0 8px;box-shadow:0 0 0 1px var(--bg)}
.map-tab__win--blue{background:var(--blue)}
.map-tab__win--red{background:var(--red)}

/* ---------------------------------------------------------------- */
/* 3. Banners                                                         */
/* ---------------------------------------------------------------- */
.arena-banners{display:flex;flex-direction:column;gap:var(--s-3);min-width:0}
.arena-banners:empty,.scorebar:empty,.map-nav:empty,.arena-foot:empty,.arena-area:empty{display:none}
.arena-banners .banner{flex-wrap:wrap}
.arena-banners .banner .lf-icon{color:inherit}

/* ---------------------------------------------------------------- */
/* 4. Placar                                                          */
/* ---------------------------------------------------------------- */
.scorebar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:var(--s-5);padding:var(--s-5) var(--s-6);border:1px solid var(--line);border-radius:var(--r-4);background:linear-gradient(180deg,var(--panel-2),var(--panel));box-shadow:var(--el-2);min-width:0}
.scorebar__team{display:flex;align-items:center;gap:var(--s-5);min-width:0}
.scorebar__team--red{flex-direction:row-reverse;text-align:right}
.scorebar__bar{width:5px;align-self:stretch;border-radius:var(--r-pill);background:var(--line);flex:0 0 5px;min-height:36px}
.scorebar__logo{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 32px;align-self:center}
.scorebar__logo .team-logo,.scorebar__logo .sigil{width:32px;height:32px}
.scorebar__team--blue .scorebar__bar{background:var(--blue)}
.scorebar__team--red .scorebar__bar{background:var(--red)}
.scorebar__team.is-unknown-side .scorebar__bar{background:var(--line-strong)}
.scorebar__id{min-width:0;display:flex;flex-direction:column;gap:3px}
.scorebar__name{font:700 var(--fs-team)/1.15 var(--font-sans);color:var(--text);overflow-wrap:break-word;hyphens:none;letter-spacing:-.01em;min-width:0}
.scorebar__sub{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;text-transform:none;letter-spacing:.06em}
.scorebar__team--red .scorebar__sub{justify-content:flex-end}
.scorebar__side{font-weight:700;text-transform:uppercase}
.scorebar__team--blue .scorebar__side{color:var(--blue)}
.scorebar__team--red .scorebar__side{color:var(--red)}
.scorebar__gold,.scorebar__diff{font-size:clamp(14px,1.5vw,19px);font-weight:800;line-height:1.3;letter-spacing:0;color:var(--text-3)}
.scorebar__team--blue:not(.is-unknown-side) .scorebar__gold,.scorebar__team--blue:not(.is-unknown-side) .scorebar__diff{color:var(--blue)}
.scorebar__team--red:not(.is-unknown-side) .scorebar__gold,.scorebar__team--red:not(.is-unknown-side) .scorebar__diff{color:var(--red)}
.scorebar__center{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);min-width:150px;max-width:60%;padding:0 var(--s-5);border-inline:1px solid var(--line-soft)}
.scorebar__kills{display:flex;align-items:baseline;gap:var(--s-4);font:800 var(--fs-display)/1 var(--font-mono);letter-spacing:-.02em}
.scorebar__k{min-width:1.3em;text-align:center;color:var(--text)}
.scorebar__k .missing{font-size:.8em}
.scorebar__colon{color:var(--text-4);font-weight:600;font-size:.8em}
.scorebar__draft{font:600 var(--fs-small)/1.3 var(--font-sans);color:var(--text-2);text-align:center;padding:var(--s-3) 0}
.scorebar__meta{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;justify-content:center}
.scorebar__series b{color:var(--text)}
/* frescor por fonte já aparece na barra da série e no cabeçalho do mapa; no placar fica só o indicador discreto de estado do relógio */
.scorebar__chips{display:none}
.clock{font:700 var(--fs-clock)/1 var(--font-mono);color:var(--gold);font-variant-numeric:tabular-nums;display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap}
.clock__suffix{font-size:var(--fs-label);letter-spacing:.06em;font-weight:600}
.clock--paused{color:var(--gold)}
.clock--stale{color:var(--stale)}
.clock--final{color:var(--text-2)}
.clock--unknown{color:var(--text-3)}
.scorebar .clock{font-size:var(--fs-clock)}

/* ---------------------------------------------------------------- */
/* 5. Faixa de objetivos                                             */
/* ---------------------------------------------------------------- */
.obj-strip{position:relative;border:1px solid var(--line);border-radius:var(--r-3);background:var(--panel);box-shadow:var(--el-2);min-width:0;transform:translateZ(0)}
.obj-strip:empty{display:none}
.obj-strip__grid{display:grid;grid-template-columns:1fr 1fr 2.1fr 1fr 1fr 1fr 1fr 1.2fr;min-width:0}
.obj-cell{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-4);min-height:54px;min-width:0;border-left:1px solid var(--line-soft)}
.obj-cell:first-child{border-left:0}
.obj-cell__v{display:flex;align-items:center;gap:var(--s-3);font:700 15px/1 var(--font-mono);font-variant-numeric:tabular-nums;min-width:0}
.obj-cell__v--blue{justify-content:flex-end;color:var(--blue)}
.obj-cell__v--red{justify-content:flex-start;color:var(--text-2)}
.obj-cell__v--red b{color:var(--text-2)}
.obj-cell__v .missing{font-size:15px;color:var(--text-3)}
.obj-cell__c{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--text-3);min-width:0;text-align:center}
.obj-cell__c .lf-icon{color:var(--text-2)}
.obj-cell__label{white-space:nowrap}
.obj-cell__timer{font-size:var(--fs-label);color:var(--green);font-weight:600;letter-spacing:.04em;white-space:nowrap}
.obj-cell__timer:empty{display:none}
.obj-cell__next{color:var(--text-3)}
.obj-cell__chips{display:flex;gap:var(--s-2);flex-wrap:wrap;justify-content:center}
.obj-cell__chips:empty{display:none}
.obj-cell--gold .obj-cell__v b,.obj-cell--gold .lf-icon{color:var(--gold)}
.obj-cell--gold .obj-cell__timer{color:var(--text-3)}
.obj-cell.is-conflict{box-shadow:inset 0 0 0 1px var(--conflict)}
.obj-cell--dragons .dragon-team{flex-direction:column;align-items:center;justify-content:center;gap:6px}
.dragon-team .num{font-size:18px}
.drag-rail{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:2px;max-width:100%}
.drag-more{font-size:10px;color:var(--text-2)}
.obj-cell__snapshot{font-size:10px;line-height:1.3;color:var(--text-3)}
.obj-cell__timer.is-unknown{color:var(--text-3);white-space:normal;font-size:10px;line-height:1.4}
.obj-cell--dragons{grid-template-columns:minmax(48px,1fr) minmax(50px,auto) minmax(48px,1fr);gap:6px}
.obj-cell--baron .obj-cell__timer{white-space:normal}
.drag-glyph{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--r-1);background:transparent}
.drag-glyph:hover{background:var(--panel-3)}
.drag-glyph .lf-icon{filter:drop-shadow(0 1px 1px rgba(0,0,0,.6))}
.drag-glyph--unknown .lf-icon{opacity:.8}
.obj-soul{font-size:var(--fs-micro)}
.obj-elder{font-size:var(--fs-micro)}
.obj-crab{display:inline-flex;align-items:center;gap:3px;font:600 11px/1 var(--font-mono);color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}
.obj-crab .lf-icon{color:var(--text-3)}
.obj-crab--blue,.obj-crab--blue .lf-icon{color:var(--blue)}
.obj-crab--red,.obj-crab--red .lf-icon{color:var(--red)}
.obj-crab__arrow{font-size:var(--fs-label);color:var(--text-4);margin-right:2px}
.obj-cell--scuttle .obj-cell__v{justify-content:center;font-size:11px}
.obj-popover{display:none;padding:var(--s-2) var(--s-5);border-top:1px solid var(--line-soft);font-size:11px;color:var(--text-2);letter-spacing:.02em}
.obj-popover.is-on{display:block}

/* ---------------------------------------------------------------- */
/* 6. Mesa                                                            */
/* ---------------------------------------------------------------- */
.arena-area{min-width:0}
.arena-table{
  display:grid;
  grid-template-columns:minmax(180px,1fr) 16px minmax(100px,132px) minmax(280px,420px) minmax(100px,132px) 16px minmax(180px,1fr);
  grid-template-areas:"blue blueRail blueNotices map redNotices redRail red" "blue blueRail neutral neutral neutral redRail red";
  justify-content:center;align-items:stretch;gap:var(--s-4);
  padding:var(--s-5);border-radius:var(--r-5);
  background:radial-gradient(120% 90% at 50% 0%,var(--panel-2),var(--bg-deep) 70%);
  box-shadow:var(--el-table);
  perspective:1200px;perspective-origin:50% 40%;
  min-width:0;
}
.roster{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));gap:var(--s-2);min-width:0;transform:translateZ(6px);perspective:900px}
.rail{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));gap:var(--s-2);min-width:0}
.rail__cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;opacity:0;transition:opacity var(--t-base) var(--ease-out)}
.rail__cell.is-on{opacity:1}
.rail__cell--kill .lf-icon{filter:drop-shadow(0 1px 2px rgba(0,0,0,.8))}
.rail__cell--death .lf-icon,.slot-badge.rail__cell--death .lf-icon{color:var(--text-2)}
.mini-portrait{display:inline-block;border-radius:50%;padding:2px;background:var(--line)}
.mini-portrait .portrait{border-radius:50%}
.mini-portrait--blue{background:var(--blue)}
.mini-portrait--red{background:var(--red)}
.mini-portrait--neutral{background:var(--text-3)}
.slot-badge{display:none}

/* slot: contém o card (frente) e o takeover (verso) — única perspectiva real da mesa */
.player-slot{position:relative;display:flex;align-items:center;min-width:0;transform-style:preserve-3d;transition:transform var(--t-kill-in) var(--ease-flip)}
.player-card{width:100%;min-width:0;backface-visibility:hidden}
.takeover{position:absolute;inset:0;display:flex;align-items:center;transform:rotateY(180deg);backface-visibility:hidden;visibility:hidden;pointer-events:none}
.player-slot.is-takeover .takeover{visibility:visible}
.player-slot.is-flipping{transform:rotateY(180deg)}
.player-slot.is-flipping.is-return{transform:rotateY(360deg);transition-duration:var(--t-kill-out)}
.player-slot.is-fading .player-card{transition:opacity var(--t-fast) var(--ease-out);opacity:0}
.player-slot.is-fading .takeover{transform:none;transition:opacity var(--t-fast) var(--ease-out);opacity:1}
.player-slot.is-fading.is-return .player-card{opacity:1}
.player-slot.is-fading.is-return .takeover{opacity:0}
.roster--red .player-slot.is-flipping{transform:rotateY(-180deg)}
.roster--red .player-slot.is-flipping.is-return{transform:rotateY(-360deg)}
.takeover__inner{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2) var(--s-3);width:100%;height:100%;padding:var(--s-3) var(--s-4);border-radius:var(--r-3);border:1px solid rgba(255,208,79,.45);background:linear-gradient(120deg,var(--panel-3),var(--panel));box-shadow:var(--el-2),inset 0 0 0 1px rgba(255,208,79,.12);overflow:hidden}
.takeover__victims--multi ~ .takeover__text{flex-basis:100%;-webkit-line-clamp:2}
.series-bar__sources .chip{font-size:var(--fs-micro);padding:1px 6px;opacity:.92}
.roster--red .takeover__inner{flex-direction:row-reverse;text-align:right}
.takeover__arrow{color:var(--gold)}
.takeover__victims{display:inline-flex;gap:2px}
.takeover__victims .mini-portrait{padding:2px}
.takeover__victims--multi .mini-portrait .portrait{--size:24px;width:24px;height:24px}
.takeover__text{font:500 11px/1.25 var(--font-sans);color:var(--text-2);min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.takeover__text b{color:var(--text);font-weight:700}
.multikill-badge{white-space:nowrap;position:absolute;left:50%;top:-12px;transform:translateX(-50%);z-index:5;padding:3px 10px;border-radius:var(--r-pill);background:var(--gold);color:#1b1300;font:800 var(--fs-label)/1.2 var(--font-mono);letter-spacing:.14em;box-shadow:0 0 0 2px var(--bg),0 4px 14px rgba(255,208,79,.35);animation:lf-badge-in var(--t-base) var(--ease-out) both}
@keyframes lf-badge-in{from{opacity:0;transform:translateX(-50%) scale(.85)}to{opacity:1;transform:translateX(-50%) scale(1)}}

/* card do jogador (4 linhas; campeão nunca escondido) */
.pc{display:grid;grid-template-columns:var(--pc-portrait) minmax(0,1fr);grid-template-rows:auto auto auto auto;column-gap:var(--s-4);row-gap:0;padding:var(--pc-pad);border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:var(--r-3);background:var(--panel-2);box-shadow:var(--el-1);min-width:0;width:100%}
.roster--red .pc{grid-template-columns:minmax(0,1fr) var(--pc-portrait);border-left:1px solid var(--line);border-right:3px solid var(--red);text-align:right}
.pc__portrait{position:relative;grid-row:1 / span 3;grid-column:1;align-self:start;width:var(--pc-portrait);height:var(--pc-portrait);border-radius:var(--r-2)}
.roster--red .pc__portrait{grid-column:2}
.pc__portrait .portrait{width:var(--pc-portrait);height:var(--pc-portrait);--size:var(--pc-portrait)}
.pc__portrait .portrait img{transition:filter var(--t-base) var(--ease-out)}
.pc__l1,.pc__l2,.pc__l3{grid-column:2;display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3);min-width:0;line-height:1.15}
.roster--red .pc__l1,.roster--red .pc__l2,.roster--red .pc__l3{grid-column:1;flex-direction:row-reverse}
.pc__l1{font:600 12px/1.2 var(--font-sans);color:var(--text)}
.pc__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc__kda{font-size:11px;font-weight:600;color:var(--text-2);flex:0 0 auto}
.pc__l2{font:500 11px/1.2 var(--font-sans);color:var(--text-2)}
.pc__champ{min-width:0;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:clip}
.pc__champ.missing{color:var(--text-3);text-overflow:ellipsis}
.pc__role{flex:0 0 auto;font-size:var(--fs-label)}
.pc__l3{font-size:11px;color:var(--text-2);justify-content:flex-start;gap:var(--s-2);white-space:nowrap}
.pc__dot{color:var(--text-4)}
.pc__items{grid-column:1 / -1;display:flex;gap:2px;margin-top:3px;min-width:0}
.roster--red .pc__items{justify-content:flex-end}
.pc__item{display:inline-flex;align-items:center;justify-content:center;width:var(--pc-item);height:var(--pc-item);border-radius:3px;border:1px solid var(--line-strong);background:var(--panel-3);font:600 var(--fs-micro)/1 var(--font-mono);color:var(--text-2);letter-spacing:0;flex:0 0 auto}
.pc__item--trinket{border-radius:50%;margin-left:3px;border-color:rgba(255,208,79,.35);color:var(--gold)}
.roster--red .pc__item--trinket{margin-left:0;margin-right:3px}
.pc__item--empty{border-style:dashed;background:transparent}
.pc__items--none{font-size:var(--fs-label);color:var(--text-3)}
.pc__item-details{grid-column:1 / -1;min-width:0;font-size:var(--fs-label);color:var(--text-2);overflow-wrap:anywhere}
.pc__item-details summary{cursor:pointer;padding:4px 0}
/* Morto: retrato em cinza e escurecido, com tempo ou caveira sobre a imagem. */
.pc.is-dead{background:linear-gradient(120deg,var(--panel-2),rgba(255,78,116,.05))}
.pc.is-dead .pc__portrait .portrait{filter:grayscale(1) brightness(.4)}
.pc.is-dead .pc__name{color:var(--text-2)}
/* Tempo centralizado sobre o retrato; o filtro de morte não atinge o texto. */
.pc__respawn{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:inherit;background:rgba(3,7,10,.35);color:#fff;text-align:center;text-shadow:0 1px 3px #000;z-index:2;pointer-events:none}
.pc__respawn-time{font-family:var(--font-mono);font-size:14px;font-weight:800;line-height:1.1;letter-spacing:-.06em;white-space:nowrap}
.pc__respawn .pc__respawn-skull{display:none}
.pc__respawn.is-unknown .pc__respawn-skull{display:block;flex:none;margin-bottom:2px}
.pc__respawn.is-unknown .pc__respawn-time{font-size:10px;letter-spacing:0}
.pc__buff{position:absolute;right:-4px;bottom:-4px;display:flex;padding:1px;border:1px solid var(--baron);border-radius:var(--r-1);background:var(--bg-deep);color:var(--baron);pointer-events:none}
.obj-cell--baron .obj-cell__c>.lf-icon{color:var(--baron)}
/* buffs: anel Barão (roxo) / Ancião (branco-dourado) / ambos concêntricos (interno roxo, externo ancião) */
.pc__portrait::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0}
.pc__portrait.has-baron::before{opacity:1;box-shadow:0 0 0 2px var(--baron),0 0 12px var(--baron-dim);animation:lf-aura var(--t-aura) ease-in-out infinite}
.pc__portrait.has-elder::before{opacity:1;box-shadow:0 0 0 2px var(--elder),0 0 12px var(--elder-dim);animation:lf-aura var(--t-aura) ease-in-out infinite}
.pc__portrait.has-both::before{opacity:1;box-shadow:0 0 0 2px var(--baron),0 0 0 3px var(--bg),0 0 0 5px var(--elder),0 0 14px var(--elder-dim);animation:lf-aura var(--t-aura) ease-in-out infinite}
@keyframes lf-aura{0%,100%{opacity:1}50%{opacity:.7}}
.pc--empty{display:flex;align-items:center;min-height:56px;padding:var(--pc-pad);border:1px dashed var(--line);border-radius:var(--r-3);color:var(--text-3)}

/* ---------------------------------------------------------------- */
/* 7. Minimapa                                                        */
/* ---------------------------------------------------------------- */
.map-well{display:flex;flex-direction:column;gap:var(--s-3);min-width:0;transform:translateZ(-6px)}
.map-head{display:flex;align-items:center;gap:var(--s-4);min-height:24px;padding:0 var(--s-2);flex-wrap:wrap}
.map-head .clock{font-size:var(--fs-clock)}
.map-head__phase{display:inline-flex;align-items:center;gap:var(--s-3);font:700 var(--fs-label)/1 var(--font-mono);letter-spacing:.12em;color:var(--text-2)}
.map-head__phase.is-live{color:var(--green)}
.map-head__phase.is-paused{color:var(--gold)}
.map-head__phase.is-final{color:var(--text-2)}
.map-head__phase:empty{display:none}
.map-head__chips{display:flex;gap:var(--s-2);margin-left:auto;flex-wrap:wrap}
.map-well__frame{position:relative;width:100%;aspect-ratio:1/1;border-radius:var(--r-4);overflow:hidden;background:var(--map-ground);
  box-shadow:inset 0 0 0 1px var(--map-edge),inset 0 18px 40px rgba(0,0,0,.55)}
.map-well__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none;opacity:.92}
.map-well__vignette{position:absolute;inset:0;background:radial-gradient(110% 110% at 50% 50%,transparent 55%,rgba(0,0,0,.55) 100%),linear-gradient(180deg,rgba(0,0,0,.28),transparent 25%);pointer-events:none}
.activity-layer{position:absolute;inset:0;pointer-events:none;z-index:2;container-type:inline-size}
.activity-pin{position:absolute;left:var(--anchor-x);top:var(--anchor-y);transform:translate(-50%,-50%);width:clamp(16px,5.6cqw,26px);height:clamp(16px,5.6cqw,26px);padding:0;border:2px dashed var(--blue);border-radius:50%;background:var(--panel);pointer-events:auto;transition:opacity 250ms linear;box-shadow:0 1px 5px #000}
.activity-pin--compact{width:clamp(12px,4.4cqw,21px);height:clamp(12px,4.4cqw,21px);border-width:1px}
.activity-pin--red{border-color:var(--red)}
.activity-pin .portrait,.activity-pin .portrait img{border-radius:50%;overflow:hidden}
.activity-pin .portrait{width:100%!important;height:100%!important}
.activity-unlocated{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.activity-unlocated[hidden]{display:none}
.activity-card{position:static;transform:none;width:auto;height:auto;min-height:36px;display:flex;align-items:center;gap:7px;padding:5px 8px;border-radius:6px;color:var(--text);font-size:11px;text-align:left}
.activity-card .portrait{width:22px!important;height:22px!important;flex-shrink:0}
.activity-card small{color:var(--text-3)}
.activity-pin:focus-visible{outline:2px solid var(--text);outline-offset:3px;opacity:1!important}
.activity-pin--more{color:var(--text);border-color:var(--text-3);font:700 10px var(--font-mono)}
.activity-legend{font-size:10px;color:var(--text-3);text-align:center;margin-top:6px;line-height:1.4}
.activity-detail{font-size:11px;color:var(--text-2);padding:8px;margin-top:5px;border:1px solid var(--line);border-radius:var(--r-2);line-height:1.4}
.map-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;--u:0.2}
.map-well__agg{max-width:100%;white-space:normal;text-align:left;line-height:1.25}
.map-tower-summary{display:flex;flex-wrap:wrap;gap:6px 14px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--r-2);margin-bottom:8px;font-size:var(--fs-micro)}
.map-tower-summary__title{flex-basis:100%;color:var(--text-2)}
.map-tower-summary__team{display:flex;align-items:baseline;gap:8px;min-width:0;overflow-wrap:anywhere;flex:1 1 120px}
.map-tower-summary__team strong{margin-left:auto;font-variant-numeric:tabular-nums}
.map-tower-summary__team--blue{color:var(--blue)}
.map-tower-summary__team--red{color:var(--red)}
.map-tower-summary__note{flex-basis:100%;color:var(--text-2);line-height:1.4}
.mk{transform:translate(var(--x),var(--y));cursor:default;outline:none}
.mk__px{transform:scale(var(--u))}
.mk--pit.is-unknown .mk__icon,.mk--pit.is-unknown .mk__ring{opacity:.42}
.mk--pit.is-unknown .mk__label{fill:var(--text-3)}
.mk__icon{transform:scale(calc(var(--marker-px) / 16))}
.mk--tower{--marker-px:20}
.mk--inhib{--marker-px:20}
.mk--tower .mk__icon,.mk--inhib .mk__icon{filter:drop-shadow(0 1px 1px #000) drop-shadow(0 0 1px #000)}
.mk__focus{fill:none;stroke:transparent;stroke-width:1.5px}
.mk:focus-visible .mk__focus{stroke:var(--gold)}
.mk__ring{fill:none;stroke:transparent;stroke-width:2px}
.mk:focus-visible .mk__ring{stroke:var(--gold);stroke-dasharray:none}
.mk__bg{fill:rgba(3,7,10,.72)}
.mk__pitbg{fill:rgba(3,7,10,.78);stroke:var(--line-strong);stroke-width:1px}
.mk--blue{color:var(--blue)}
.mk--red{color:var(--red)}
.mk--tower.mk--blue,.mk--inhib.mk--blue{color:#2ebfff}
.mk--tower.mk--red,.mk--inhib.mk--red{color:#ff4455}
.mk--neutral{color:var(--text-3)}
/* Sem aros decorativos: conflito marcado no próprio glifo.
   O retângulo de foco aparece somente ao navegar pelo teclado. */
.mk--nexus.is-unknown .mk__icon{opacity:.42}
.mk--tower.is-unknown .mk__icon{opacity:1}
/* A cor identifica o lado; o pontilhado e o texto indicam a falta de confirmação. */
.mk--tower.is-unconfirmed .mk__icon{opacity:1}
.mk--tower.is-unconfirmed .mk__focus{stroke:currentColor;stroke-dasharray:3 3;opacity:.75}
.mk--tower.is-unconfirmed:focus-visible .mk__focus{stroke:var(--gold);stroke-dasharray:none;opacity:1}
.mk--inhib.is-unknown .mk__icon{opacity:1}
.mk--nexus.is-unknown .mk__bg{fill:rgba(3,7,10,.5)}
.mk--inhib.is-destroyed,.mk--inhib.is-respawning,.mk--nexus.is-destroyed{color:var(--text-4)}
.mk--tower.is-destroyed,.mk--inhib.is-destroyed,.mk--inhib.is-respawning{color:#a4b0ba}
.mk--tower.is-destroyed .mk__icon{opacity:1}
.mk--inhib.is-destroyed .mk__icon{opacity:1}
.mk__conflict{fill:none;stroke:var(--stale);stroke-width:1.5px}
.mk--tower.is-conflict .mk__icon{opacity:.7;filter:drop-shadow(0 0 1px var(--stale))}
/* Queda: 400 ms; mantém a ruína visível no estado final. */
.mk--tower.is-falling .mk__icon{animation:lf-fall 400ms var(--ease-in) both;transform-origin:0 6px}
@keyframes lf-fall{0%{transform:scale(calc(var(--marker-px) / 16)) rotate(0);opacity:1}45%{transform:scale(calc(var(--marker-px) / 16 * 1.12)) rotate(-8deg);opacity:1}100%{transform:scale(calc(var(--marker-px) / 16));opacity:1}}
@keyframes lf-ring{from{stroke-opacity:1;transform:scale(.6)}to{stroke-opacity:0;transform:scale(1.6)}}
/* Barricadas T1..T3: saldo observado ou desenho inicial de cinco. */
.plate-badge rect{fill:rgba(3,7,10,.9);stroke:rgba(255,208,79,.55);stroke-width:1px}
.plate-badge text{font:800 11px/1 var(--font-mono);fill:var(--gold);text-anchor:middle;letter-spacing:0}
.plate-badge--zero rect{stroke:var(--line-strong)}
.plate-badge--zero text{fill:var(--text-3)}
.plate-badge--unknown rect{stroke:var(--text-3)}
.plate-badge--unknown text{fill:var(--text)}
/* avisos no minimapa: pilha no canto superior esquerdo, 3 no máx., mais novo em cima */
.map-toasts{position:absolute;left:var(--s-4);right:var(--s-4);top:var(--s-4);z-index:4;display:flex;flex-direction:column;gap:var(--s-2);max-width:360px;pointer-events:none}
.map-toast{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 8px;padding:9px 11px;border-radius:var(--r-3);border:1px solid var(--line-strong);border-left:4px solid var(--text-3);background:rgba(3,7,10,.96);box-shadow:var(--el-2);font:700 13px/1.4 var(--font-sans);color:var(--text);animation:lf-toast-in 220ms var(--ease-out) both}
.map-toast--blue{border-left-color:var(--blue)}
.map-toast--red{border-left-color:var(--red)}
.map-toast--plate{border-left-color:inherit}
.map-toast__ico{display:inline-flex;color:var(--text-2)}
.map-toast--blue .map-toast__ico{color:var(--blue)}
.map-toast--red .map-toast__ico{color:var(--red)}
.map-toast--baron .map-toast__ico{color:var(--baron)}
.map-toast--elder .map-toast__ico{color:var(--elder)}
.map-toast--plate .map-toast__ico{color:var(--gold)}
.map-toast__text{min-width:0;overflow-wrap:anywhere}
.map-toast__src{grid-column:2;justify-self:start;color:var(--text-2);border-color:var(--line-strong);background:var(--panel-2)}
.map-toast.is-leaving{animation:lf-toast-out 180ms var(--ease-in) both}
.map-toast.is-static,.map-toast.is-static.is-leaving{animation:none}
@keyframes lf-toast-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes lf-toast-out{from{opacity:1}to{opacity:0}}
.mk--inhib.is-respawning .mk__icon{opacity:.85}
.mk--nexus.is-destroyed .mk__icon{opacity:.5}
.mk--nexus.is-under_attack .mk__ring{stroke:var(--conflict);animation:lf-aura var(--t-pulse) ease-in-out infinite}
.mk__label{font:700 10px/1 var(--font-mono);fill:var(--gold);text-anchor:middle;paint-order:stroke;stroke:rgba(3,7,10,.9);stroke-width:3px;stroke-linejoin:round;letter-spacing:.04em}
.mk__label--pit{font-size:10px}
.mk--pit-baron .mk__icon{color:var(--baron)}
.mk--pit-baron.is-slain .mk__icon{opacity:.55}
.mk--pit-dragon.is-slain .mk__icon{opacity:.55}
.mk--pit.is-awaiting .mk__label{fill:var(--green)}
.mk--pit.is-alive .mk__label{fill:var(--green)}
.mk--pit.is-slain .mk__label{fill:var(--text-2)}
.mk--pit.is-elder .mk__icon{color:var(--elder)}
.mk--scuttle .mk__bg{fill:rgba(3,7,10,.55)}
.mk--scuttle.is-slain .mk__icon{opacity:.7}
.map-victory{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 16px;border:1px solid var(--line);border-top:3px solid var(--victory-color);border-radius:var(--r-3);background:var(--bg-deep);text-align:center;overflow-wrap:anywhere}
.map-victory--blue{--victory-color:var(--blue)}
.map-victory--red{--victory-color:var(--red)}
.map-victory strong{font-size:clamp(18px,2.2vw,25px);line-height:1.2;color:var(--text)}
.map-victory span{font-size:12px;color:var(--text-2)}

/* ---------------------------------------------------------------- */
/* 8. Feed e rodapé                                                   */
/* ---------------------------------------------------------------- */
.feed{border:1px solid var(--line);border-radius:var(--r-3);background:var(--panel);box-shadow:var(--el-1);min-width:0}
.feed:empty{display:none}
.feed__head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--line-soft)}
.feed__filters{display:flex;gap:var(--s-2);flex-wrap:wrap}
.feed__list{max-height:320px;overflow-y:auto;scrollbar-width:thin}
.feed__list:focus-visible{outline-offset:-2px}
.feed__row{display:grid;grid-template-columns:auto 20px minmax(0,1fr) auto auto;align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-5);border-left:3px solid var(--line);border-bottom:1px solid var(--line-soft);font:500 var(--fs-body)/1.35 var(--font-sans);color:var(--text)}
.feed__row:last-child{border-bottom:0}
.feed__row--blue{border-left-color:var(--blue)}
.feed__row--red{border-left-color:var(--red)}
.feed__row.is-rejected{color:var(--text-2)}
.feed__row.is-rejected .feed__text{font-style:italic}
.feed__t{font-size:var(--fs-small);color:var(--gold);font-weight:600;min-width:42px}
.feed__ico{display:inline-flex;justify-content:center;color:var(--text-2)}
.feed__row--kill .feed__ico{color:var(--gold)}
.feed__row--correction .feed__ico,.feed__row--conflict .feed__ico{color:var(--stale)}
.feed__text{min-width:0;overflow-wrap:anywhere}
.feed__multi{color:var(--gold);font-family:var(--font-mono);letter-spacing:.1em;font-size:var(--fs-label)}
.feed__empty{padding:var(--s-6);text-align:center;font-size:var(--fs-small)}
.feed .banner{margin:var(--s-4)}
.arena-foot{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-6);padding:0 var(--s-2);font:500 var(--fs-small)/1.4 var(--font-sans);color:var(--text-3)}
.arena-foot b{color:var(--text-2);font-weight:600}
.arena-foot__note{font-family:var(--font-mono);font-size:11px}

/* ---------------------------------------------------------------- */
/* 9. Congelado (histórico): nada se mexe                             */
/* ---------------------------------------------------------------- */
.arena.is-frozen *{animation:none!important}
.arena.is-frozen .rail__cell,.arena.is-frozen .slot-badge{display:none!important}
.arena.is-frozen .takeover{display:none!important}
.arena.is-frozen .pc__portrait::before{animation:none!important}

/* ---------------------------------------------------------------- */
/* 10. Breakpoints                                                    */
/* ---------------------------------------------------------------- */
@media (max-width:1439px){
  .obj-strip__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .obj-cell:nth-child(5){border-left:0}
  .obj-cell:nth-child(n+5){border-top:1px solid var(--line-soft)}
  .obj-cell--dragons{grid-column:span 2}
  .obj-cell--scuttle{grid-column:span 2}
}
@media (max-width:1023px){
  .arena{--pc-portrait:36px;--pc-pad:5px;--pc-item:15px;--marker-px:19}
  .scorebar__chips{display:none}
  .scorebar__team{min-width:110px}
  .arena-table{padding:var(--s-4);gap:var(--s-4)}
  .scorebar{padding:var(--s-4) var(--s-5)}
  .scorebar__center{min-width:130px;padding:0 var(--s-4)}
  .obj-strip__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .obj-cell{min-height:48px;padding:var(--s-3) var(--s-3)}
  .obj-cell:nth-child(5){border-left:0}
  .obj-cell:nth-child(n+5){border-top:1px solid var(--line-soft)}
  .obj-cell--dragons{grid-column:span 2}
  .obj-cell--scuttle{grid-column:span 2}
  .obj-cell__v{font-size:14px}
  .pc__l1{font-size:11px}
  .pc__l2,.pc__l3,.pc__kda{font-size:10px}
  .series-bar{padding:var(--s-4) var(--s-5)}
}
@media (max-width:820px){
  .arena{padding:var(--s-4) var(--s-4) var(--s-8);gap:var(--s-4);--pc-portrait:40px;--pc-pad:6px;--pc-item:16px;--marker-px:17}
  .arena-table{display:flex;flex-direction:column;gap:var(--s-4);perspective:none;padding:var(--s-4)}
  .roster,.map-well{transform:none}
  .rail{display:none}
  .map-well{width:100%;max-width:420px;margin:0 auto;order:0}
  .roster--blue{order:1}
  .roster--red{order:2}
  .roster{grid-template-rows:none;gap:var(--s-3)}
  /* O skeleton conserva cinco slots por lado para patch incremental. Em retrato
     histórico com elenco explicitamente indisponível, eles não reservam espaço. */
  .roster--unavailable{display:none}
  .player-slot{min-height:56px}
  .pc__l1{font-size:12px}
  .pc__l2,.pc__l3{font-size:11px}
  .slot-badge{display:none;position:absolute;top:2px;right:2px;z-index:3;max-width:40%;align-items:center;justify-content:center;gap:2px;padding:2px 4px;border-radius:var(--r-2);background:rgba(3,7,10,.85);border:1px solid var(--line)}
  .slot-badge.is-on{display:inline-flex}
  .roster--red .slot-badge{right:auto;left:2px}
  .scorebar{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"center center" "blue red";gap:var(--s-3);padding:var(--s-4)}
  .scorebar__team--blue{grid-area:blue}
  .scorebar__team--red{grid-area:red}
  .scorebar__team{flex-direction:column;align-items:flex-start;gap:var(--s-2);min-width:0}
  .scorebar__name{font-size:var(--fs-team)}
  .scorebar__team--red{align-items:flex-end}
  .scorebar__bar{width:100%;height:3px;min-height:3px;align-self:auto;flex:0 0 3px}
  .scorebar__center{grid-area:center;min-width:0;max-width:none;padding:0 var(--s-3);border-inline:0}
  .scorebar__chips{display:none}
  .series-bar{padding:var(--s-4)}
  .series-bar__score{margin-left:0;width:100%}
  .obj-strip__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .obj-cell{min-height:44px;padding:var(--s-3)}
  .obj-cell:nth-child(n+3){border-top:1px solid var(--line-soft)}
  .obj-cell:nth-child(odd){border-left:0}
  .obj-cell:nth-child(5){border-left:0}
  .obj-cell--dragons{grid-column:span 2;border-left:0}
  .obj-cell--scuttle{grid-column:span 2;border-left:0}
  .obj-cell--dragons + .obj-cell{border-left:0}
  .obj-cell--dragons + .obj-cell + .obj-cell{border-left:1px solid var(--line-soft)}
  .feed__row{grid-template-columns:auto 18px minmax(0,1fr);row-gap:2px}
  .feed__src,.feed__row .chip--xs{grid-column:3;justify-self:start}
  .feed__row .feed__src{grid-column:3}
  .map-well__agg{font-size:var(--fs-micro)}
}
@media (max-width:420px){
  .obj-cell__v{font-size:13px}
  .obj-cell__c .lf-icon{width:14px;height:14px}
}

/* reduced motion: nada gira; takeover vira crossfade (JS já escolhe .is-fading) */
@media (prefers-reduced-motion:reduce){
  .arena-table{perspective:none}
  .roster,.map-well{transform:none}
  .player-slot{transition:none!important}
  .pc__portrait::before,.mk--nexus.is-under_attack .mk__ring{animation:none!important}
  .mk--tower.is-falling .mk__icon,.mk--tower.is-falling .mk__ring,.map-toast{animation:none!important}
}
html[data-motion="reduced"] .mk--tower.is-falling .mk__icon,html[data-motion="reduced"] .mk--tower.is-falling .mk__ring,html[data-motion="reduced"] .map-toast{animation:none!important}
html[data-motion="reduced"] .arena-table{perspective:none}
html[data-motion="reduced"] .roster,html[data-motion="reduced"] .map-well{transform:none}
html[data-motion="reduced"] .player-slot{transition:none!important}
html[data-motion="reduced"] .player-slot.is-fading .player-card,html[data-motion="reduced"] .player-slot.is-fading .takeover{transition:opacity 120ms linear!important}

/* ausência de placar: motivo visível (não só tooltip) */
.scorebar__note{font:500 11px/1.3 var(--font-sans);color:var(--text-3);text-align:center;margin-top:2px}
.series-bar__pending{color:var(--text-3)}

/* Cobertura limitada: informação neutra, sem simular elenco ou lados. */
.coverage-note{max-width:760px;margin:0 auto;padding:28px;color:var(--text-2);line-height:1.6}
.coverage-note h2{margin:0 0 10px;font-size:18px;color:var(--text-1)}
.coverage-note p{margin:0 0 20px}
.coverage-note ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.coverage-note li{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;overflow-wrap:anywhere}
.coverage-note strong{font-weight:600}
.map-tab--limited .map-tab__label{border-color:var(--line-soft)}
.series-bar__sources .chip{white-space:normal;max-width:100%;line-height:1.5}
@media(max-width:420px){.coverage-note{padding:20px 16px}.coverage-note li{grid-template-columns:76px minmax(0,1fr);gap:8px}}
