/* Ultimate Poke Idle — dashboard v4
   Cards colecionáveis, evento global, conta e comunidade. */

#dashboard-screen .upi-crowd-canvas {
  position: fixed;
  inset: 88px 0 0 244px;
  z-index: 1;
  width: calc(100vw - 244px);
  height: calc(100vh - 88px);
  pointer-events: none;
  opacity: .68;
  image-rendering: pixelated;
}

#dashboard-screen .nav a[data-upi-icon="clan"]::before {
  background-image: url('/assets/ui/generated/premium/clan-crest.png');
}
#dashboard-screen .nav a[data-upi-icon="gamepass"]::before {
  background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/redeem-ticket.png');
}
#dashboard-screen .nav a[data-upi-icon="pvp"]::before {
  background-image: url('/assets/ui/generated/premium/pvp-arena.png');
}
#dashboard-screen .nav a[data-upi-icon="diamonds"]::before {
  background-image: url('/assets/items/water_gem.png');
}
#dashboard-screen .nav a[data-upi-icon="account"]::before {
  background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/trainer.png');
}
#dashboard-screen .act[data-upi-icon="diamonds"] .ic {
  background-image: url('/assets/items/water_gem.png');
}
#dashboard-screen .act[data-upi-icon="pokedex"] .ic {
  background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/pokedex.png');
}
#dashboard-screen .act[data-upi-icon="shiny"] .ic {
  background-image: url('/assets/items/shiny_charm.png');
}

/* Charset real do seguidor: 4 colunas x 4 direções. O JS altera somente o
   quadro horizontal a 6 FPS; a linha zero é a mesma animação "down" do jogo. */
#dashboard-screen .upi-pokemon-sprite {
  width: 64px;
  height: 64px;
  display: block;
  flex: none;
  background-image: var(--upi-pokemon-sheet);
  background-repeat: no-repeat;
  background-position: var(--upi-pokemon-frame-x, 0%) 0%;
  background-size: 400% 400%;
  image-rendering: pixelated;
  filter: drop-shadow(0 8px 8px rgba(24,76,93,.2));
}
#dashboard-screen .upi-sidebar-companion .upi-pokemon-sprite {
  width: 48px;
  height: 48px;
}
#dashboard-screen .upi-passport-top .upi-pokemon-sprite {
  position: relative;
  z-index: 1;
  width: 82px;
  height: 82px;
  margin: -8px -4px -8px 0;
  filter: drop-shadow(0 10px 9px rgba(20,68,86,.25));
}

/* Evento global ocupa o cartão editorial principal. */
#dashboard-screen .journey-play {
  --event-accent: #43c88f;
  isolation: isolate;
  background:
    radial-gradient(circle at 85% 18%, color-mix(in srgb, var(--event-accent) 32%, transparent), transparent 31%),
    linear-gradient(145deg, rgba(232,249,255,.98), rgba(225,249,239,.97));
}
#dashboard-screen .journey-play::before {
  background:
    linear-gradient(150deg, transparent 20%, color-mix(in srgb, var(--event-accent) 14%, transparent)),
    repeating-linear-gradient(135deg, transparent 0 18px, rgba(255,255,255,.22) 19px 20px);
}
#dashboard-screen .journey-play[data-event-active="true"] {
  border-color: color-mix(in srgb, var(--event-accent) 55%, #b9dfe7);
  box-shadow: 0 24px 54px color-mix(in srgb, var(--event-accent) 20%, rgba(37,107,132,.12));
}
#dashboard-screen .journey-play .upi-card-copy small {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: color-mix(in srgb, var(--event-accent) 72%, #24556b);
}
#dashboard-screen .journey-play .upi-card-copy small::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--event-accent);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--event-accent) 16%, transparent);
}
#dashboard-screen .journey-play .upi-card-copy i {
  width: fit-content;
  padding: 7px 11px;
  border: 1px solid color-mix(in srgb, var(--event-accent) 35%, transparent);
  border-radius: 999px;
  color: #24566c;
  background: rgba(255,255,255,.72);
}
#dashboard-screen .journey-play .upi-card-mons img {
  animation: upi-event-mon 1.25s ease-in-out infinite alternate;
  filter: drop-shadow(0 16px 18px color-mix(in srgb, var(--event-accent) 28%, rgba(30,94,113,.2)));
}
@keyframes upi-event-mon { to { transform: translateY(-9px) rotate(1.5deg); } }

/* O card editorial abre os efeitos reais retornados por /api/live-events/active. */
body.upi-event-dialog-open { overflow: hidden; }
#dashboard-screen .upi-event-details-overlay[hidden] { display: none !important; }
#dashboard-screen .upi-event-details-overlay {
  --event-accent: #43c88f;
  position: fixed;
  z-index: 980;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(9, 37, 51, .66);
  backdrop-filter: blur(12px) saturate(.82);
}
#dashboard-screen .upi-event-details-dialog {
  position: relative;
  width: min(920px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px);
  overflow: auto;
  border: 1px solid color-mix(in srgb, var(--event-accent) 48%, #bfdae2);
  border-radius: 30px;
  outline: none;
  color: #193f52;
  background:
    radial-gradient(circle at 8% 0, color-mix(in srgb, var(--event-accent) 25%, transparent), transparent 27%),
    linear-gradient(145deg, #fafdff, #edf9f6 74%, #f8fcff);
  box-shadow: 0 34px 90px rgba(3, 31, 45, .38), inset 0 0 0 1px rgba(255,255,255,.72);
}
#dashboard-screen .upi-event-details-dialog:focus-visible { box-shadow: 0 34px 90px rgba(3,31,45,.38), 0 0 0 4px color-mix(in srgb, var(--event-accent) 45%, transparent); }
#dashboard-screen .upi-event-details-close {
  position: absolute;
  z-index: 3;
  top: 17px;
  right: 17px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(60,123,143,.2);
  border-radius: 14px;
  color: #315f70;
  background: rgba(255,255,255,.82);
  font: 700 25px/1 system-ui, sans-serif;
  cursor: pointer;
}
#dashboard-screen .upi-event-details-close:hover { color: #143d51; background: #fff; transform: translateY(-1px); }
#dashboard-screen .upi-event-details-close:focus-visible,
#dashboard-screen .upi-event-details-actions button:focus-visible { outline: 3px solid color-mix(in srgb, var(--event-accent) 55%, #42a9d1); outline-offset: 2px; }
#dashboard-screen .upi-event-details-head {
  position: relative;
  display: grid;
  grid-template-columns: 190px minmax(0,1fr);
  align-items: center;
  gap: 24px;
  min-height: 225px;
  overflow: hidden;
  padding: 28px 78px 28px 30px;
  border-bottom: 1px solid rgba(64,137,156,.14);
}
#dashboard-screen .upi-event-details-head::after {
  content: "";
  position: absolute;
  right: -80px;
  top: -115px;
  width: 310px;
  height: 310px;
  border: 38px solid color-mix(in srgb, var(--event-accent) 12%, transparent);
  border-radius: 50%;
  pointer-events: none;
}
#dashboard-screen .upi-event-details-art {
  position: relative;
  width: 180px;
  height: 166px;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--event-accent) 27%, #d7e8ec);
  border-radius: 28px;
  background: radial-gradient(circle, rgba(255,255,255,.96), color-mix(in srgb, var(--event-accent) 12%, #eef8fa));
}
#dashboard-screen .upi-event-details-art::after { content: ""; position: absolute; inset: 17px; border: 1px dashed color-mix(in srgb, var(--event-accent) 35%, transparent); border-radius: 50%; }
#dashboard-screen .upi-event-details-art img { position: relative; z-index: 1; width: 148px; height: 148px; object-fit: contain; image-rendering: pixelated; filter: drop-shadow(0 15px 14px rgba(27,82,99,.23)); animation: upi-event-mon 1.25s ease-in-out infinite alternate; }
#dashboard-screen .upi-event-details-copy { position: relative; z-index: 1; min-width: 0; }
#dashboard-screen .upi-event-details-kicker,
#dashboard-screen .upi-event-details-section-head > span,
#dashboard-screen .upi-event-scope > span { display: block; color: color-mix(in srgb, var(--event-accent) 76%, #2a6071); font-size: 9px; font-weight: 900; letter-spacing: .14em; }
#dashboard-screen .upi-event-details-kicker::before { content: ""; width: 8px; height: 8px; display: inline-block; margin-right: 9px; border-radius: 50%; background: var(--event-accent); box-shadow: 0 0 0 6px color-mix(in srgb, var(--event-accent) 17%, transparent); }
#dashboard-screen .upi-event-details-copy h2 { max-width: 590px; margin: 12px 0 0; color: #123a50; font-size: clamp(26px, 3vw, 39px); line-height: 1.03; letter-spacing: -.035em; }
#dashboard-screen .upi-event-details-copy p { max-width: 610px; margin: 12px 0 0; color: #668593; font-size: 13px; line-height: 1.52; }
#dashboard-screen .upi-event-details-time { width: fit-content; display: inline-flex; align-items: center; margin-top: 17px; padding: 9px 13px; border: 1px solid color-mix(in srgb, var(--event-accent) 30%, transparent); border-radius: 999px; color: #24596b; background: rgba(255,255,255,.76); font-size: 11px; font-weight: 850; }
#dashboard-screen .upi-event-details-time::before { content: "◷"; margin-right: 7px; color: var(--event-accent); font-size: 16px; }
#dashboard-screen .upi-event-details-body { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(250px,.75fr); gap: 18px; padding: 26px 30px 22px; }
#dashboard-screen .upi-event-details-section-head h3,
#dashboard-screen .upi-event-scope h3 { margin: 4px 0 0; color: #1e4659; font-size: 17px; }
#dashboard-screen .upi-event-bonus-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 15px; }
#dashboard-screen .upi-event-bonus {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 84px;
  padding: 12px;
  border: 1px solid rgba(59,132,151,.13);
  border-radius: 18px;
  background: rgba(255,255,255,.84);
  box-shadow: 0 9px 22px rgba(33,96,114,.06);
}
#dashboard-screen .upi-event-bonus-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 14px; background: color-mix(in srgb, var(--event-accent) 14%, #edf8fa); font-size: 21px; }
#dashboard-screen .upi-event-bonus-copy { min-width: 0; }
#dashboard-screen .upi-event-bonus-copy strong,
#dashboard-screen .upi-event-bonus-copy small { display: block; }
#dashboard-screen .upi-event-bonus-copy strong { color: #254d5e; font-size: 11px; line-height: 1.2; }
#dashboard-screen .upi-event-bonus-copy small { margin-top: 4px; color: #77919c; font-size: 8.5px; line-height: 1.35; }
#dashboard-screen .upi-event-bonus-value { padding: 6px 8px; border-radius: 10px; color: #147b5e; background: #e2f8ee; font-size: 13px; }
#dashboard-screen .upi-event-bonus-empty { grid-column: 1/-1; min-height: 105px; display: grid; place-items: center; padding: 22px; border: 1px dashed #c7dde2; border-radius: 18px; color: #688894; background: rgba(255,255,255,.62); font-size: 11px; text-align: center; }
#dashboard-screen .upi-event-scope { padding: 19px; border: 1px solid color-mix(in srgb, var(--event-accent) 19%, #d5e6e9); border-radius: 21px; background: color-mix(in srgb, var(--event-accent) 7%, rgba(255,255,255,.8)); }
#dashboard-screen .upi-event-scope-list { display: flex; flex-direction: column; gap: 8px; margin-top: 15px; }
#dashboard-screen .upi-event-scope-chip { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 11px; border-radius: 13px; background: rgba(255,255,255,.86); }
#dashboard-screen .upi-event-scope-chip small { color: #7a939e; font-size: 8px; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
#dashboard-screen .upi-event-scope-chip b { color: #285364; font-size: 10px; text-align: right; }
#dashboard-screen .upi-event-scope > p { margin: 14px 2px 0; color: #6c8995; font-size: 9px; line-height: 1.5; }
#dashboard-screen .upi-event-details-actions { display: flex; justify-content: flex-end; gap: 9px; padding: 0 30px 27px; }
#dashboard-screen .upi-event-details-actions button { min-height: 43px; padding: 0 18px; border-radius: 13px; font: 850 11px/1 system-ui, sans-serif; cursor: pointer; }
#dashboard-screen .upi-event-secondary { border: 1px solid #cbdde2; color: #557784; background: #fff; }
#dashboard-screen .upi-event-primary { border: 0; color: #fff; background: linear-gradient(100deg,#3b9ed7,var(--event-accent)); box-shadow: 0 11px 22px color-mix(in srgb, var(--event-accent) 23%, transparent); }
#dashboard-screen .upi-event-details-actions button:hover { transform: translateY(-1px); filter: brightness(1.025); }

/* Equipe como coleção de cards Pokémon, sem slots achatados. */
#dashboard-screen .team {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 15px;
}
#dashboard-screen .team .mon:first-child { grid-column: auto; }
#dashboard-screen .pokemon-card {
  position: relative;
  min-height: 350px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow: hidden;
  padding: 10px;
  border: 2px solid color-mix(in srgb, var(--card-accent) 55%, #d7e8ec);
  border-radius: 21px;
  background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(145deg,var(--card-accent),#e7c85c,#45bfa4) border-box;
  box-shadow: 0 16px 34px rgba(27,91,111,.12), inset 0 0 0 3px rgba(255,255,255,.8);
  transform-style: preserve-3d;
}
#dashboard-screen .pokemon-card:hover {
  transform: translateY(-7px) rotateX(1deg);
  box-shadow: 0 26px 48px rgba(27,91,111,.19), 0 0 0 3px color-mix(in srgb, var(--card-accent) 13%, transparent);
}
#dashboard-screen .pokemon-card .card-foil {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .28;
  background:
    radial-gradient(circle at 20% 8%, color-mix(in srgb,var(--card-accent) 30%,transparent), transparent 28%),
    linear-gradient(120deg, transparent 28%, rgba(255,255,255,.72) 38%, transparent 48%);
}
#dashboard-screen .pokemon-card.is-shiny .card-foil {
  opacity: .55;
  background: linear-gradient(115deg, rgba(255,98,168,.16), rgba(94,212,255,.2), rgba(255,222,91,.22), rgba(123,255,185,.17));
  background-size: 220% 220%;
  animation: upi-foil 3.5s linear infinite;
}
@keyframes upi-foil { to { background-position: 200% 100%; } }
#dashboard-screen .pokemon-card > *:not(.card-foil) { position: relative; z-index: 1; }
#dashboard-screen .pokemon-card .card-head {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 3px 5px 0;
}
#dashboard-screen .pokemon-card .card-head small,
#dashboard-screen .pokemon-card .card-head strong { display: block; }
#dashboard-screen .pokemon-card .card-head small { color: #7897a4; font-size: 7.5px; font-weight: 900; letter-spacing: .12em; }
#dashboard-screen .pokemon-card .card-head strong { max-width: 145px; overflow: hidden; color: #173d52; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
#dashboard-screen .pokemon-card .card-head > span { flex: none; color: #285c70; font-size: 12px; font-weight: 900; }
#dashboard-screen .pokemon-card .card-art {
  position: relative;
  min-height: 145px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid color-mix(in srgb,var(--card-accent) 23%,#d5e7eb);
  border-radius: 16px 16px 38px 16px;
  background:
    radial-gradient(ellipse at 50% 78%, color-mix(in srgb,var(--card-accent) 22%,transparent), transparent 42%),
    linear-gradient(155deg,#f8fdff,#edf8f5);
}
#dashboard-screen .pokemon-card .card-art::after {
  content: "";
  position: absolute;
  bottom: 17px;
  width: 66%;
  height: 18px;
  border-radius: 50%;
  background: radial-gradient(ellipse,rgba(27,96,112,.18),transparent 68%);
}
#dashboard-screen .pokemon-card .card-art .upi-pokemon-sprite {
  z-index: 1;
  width: 126px;
  height: 126px;
  filter: drop-shadow(0 12px 9px rgba(28,85,102,.22));
}
#dashboard-screen .pokemon-card .card-art .shiny {
  top: 9px;
  left: 9px;
  padding: 4px 7px;
  border-radius: 999px;
  background: linear-gradient(135deg,#8cdfff,#ffe36a,#ff9fca);
  color: #20485b;
  font-size: 8px;
  font-weight: 950;
}
#dashboard-screen .pokemon-card .card-art .st { right: 8px; bottom: 8px; }
#dashboard-screen .pokemon-card .card-meta { min-height: 22px; display: flex; align-items: center; gap: 5px; }
#dashboard-screen .pokemon-card .card-meta .typs { flex: 1; min-height: 0; margin: 0; }
#dashboard-screen .pokemon-card .card-meta code { max-width: 72px; overflow: hidden; color: #8aa1aa; font: 700 8px ui-monospace,monospace; text-overflow: ellipsis; }
#dashboard-screen .pokemon-card .card-hp { padding: 9px 10px 4px; border-radius: 12px; background: #eef7f5; }
#dashboard-screen .pokemon-card .card-hp .lab { margin-bottom: 5px; color: #577786; }
#dashboard-screen .pokemon-card .card-hp .lab b { color: #244f61; }
#dashboard-screen .pokemon-card .card-hp .bar { height: 7px; margin-bottom: 0; background: #d5e7e4; }
#dashboard-screen .pokemon-card .card-moves { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; margin-top: auto; }
#dashboard-screen .pokemon-card .card-moves span { overflow: hidden; padding: 7px 6px; border: 1px solid #d9e8eb; border-radius: 9px; color: #527484; background: #f8fcfd; font-size: 8px; font-weight: 800; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
#dashboard-screen .pokemon-card.empty {
  min-height: 350px;
  align-items: center;
  justify-content: center;
  border: 2px dashed #cbdfe4;
  background: rgba(249,253,254,.65);
  color: #8aa3ad;
  text-align: center;
  box-shadow: none;
}
#dashboard-screen .pokemon-card.empty .empty-ball { width: 64px; height: 64px; display: grid; place-items: center; border: 1px solid #d4e7eb; border-radius: 50%; background: #eff8fa; color: #67a1b3; font-size: 26px; }
#dashboard-screen .pokemon-card.empty strong { color: #668794; font-size: 13px; }
#dashboard-screen .pokemon-card.empty span { max-width: 120px; font-size: 9px; line-height: 1.4; }

/* Resumo: identidade e carteiras têm hierarquia clara, progresso fica escaneável. */
#dashboard-screen .upi-account-data {
  padding: 25px;
  background:
    radial-gradient(circle at 100% 0,rgba(76,199,154,.12),transparent 34%),
    rgba(255,255,255,.95);
}
#dashboard-screen .upi-account-data .section-h { align-items: center; }
#dashboard-screen .upi-sync-pill { padding: 6px 9px; border-radius: 999px; color: #238364; background: #e7f8f1; font-size: 8px; font-weight: 850; letter-spacing: .06em; }
#dashboard-screen .upi-account-identity { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 11px; margin-bottom: 11px; }
#dashboard-screen .upi-account-identity .act,
#dashboard-screen .upi-account-stats .act {
  min-height: 70px;
  padding: 12px;
  border: 1px solid rgba(48,130,157,.12);
  border-radius: 17px;
  background: linear-gradient(145deg,#fbfeff,#eef9f6);
}
#dashboard-screen .upi-account-identity .identity { min-height: 92px; }
#dashboard-screen .upi-account-identity .identity .ic { width: 58px; height: 58px; background-size: 52px; }
#dashboard-screen .upi-account-identity .act p span,
#dashboard-screen .upi-account-identity .act p b { display: block; }
#dashboard-screen .upi-account-identity .act p span { color: #7895a2; font-size: 10px; }
#dashboard-screen .upi-account-identity .act p b { margin-top: 2px; }
#dashboard-screen .upi-account-identity .identity p b { font-size: 18px; }
#dashboard-screen .upi-account-identity .identity p small { display: block; margin-top: 3px; color: #39a37d; font-size: 9px; font-weight: 800; }
#dashboard-screen .upi-wallet { display: grid; grid-template-rows: 1fr 1fr; gap: 7px; }
#dashboard-screen .upi-wallet .act { min-height: 0; padding-block: 7px; }
#dashboard-screen .upi-wallet .ic { width: 36px; height: 36px; background-size: 33px; }
#dashboard-screen .upi-account-stats { grid-template-columns: repeat(4,minmax(0,1fr)); }
#dashboard-screen .upi-account-stats .act { min-height: 78px; flex-direction: column; align-items: flex-start; gap: 7px; }
#dashboard-screen .upi-account-stats .act .ic { width: 34px; height: 34px; background-size: 31px; }
#dashboard-screen .upi-account-stats .act p b { font-size: 15px; }

/* Rankings: posições, barras e estados vazios úteis. */
#dashboard-screen .upi-community-grid .block { min-height: 350px; padding: 22px; }
#dashboard-screen .upi-community-grid .head { min-height: 58px; align-items: center; }
#dashboard-screen .upi-community-grid .head > img { width: 58px; height: 58px; }
#dashboard-screen .rkl { display: flex; flex-direction: column; gap: 8px; }
#dashboard-screen .rkl .rk {
  min-height: 54px;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 8px 10px;
  border: 1px solid #deeaed;
  background: #f8fcfd;
}
#dashboard-screen .rkl .rk .pos { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 10px; color: #587987; background: #e8f3f5; font-size: 10px; font-weight: 950; }
#dashboard-screen .rkl .rk.top1 .pos { color: #805d16; background: linear-gradient(135deg,#ffe697,#f5bd43); box-shadow: 0 6px 14px rgba(221,166,51,.25); }
#dashboard-screen .rkl .rk.top2 .pos { color: #5c7180; background: linear-gradient(135deg,#f2f7f8,#c8d9de); }
#dashboard-screen .rkl .rk.top3 .pos { color: #7e5135; background: linear-gradient(135deg,#f3c6a4,#cf895c); }
#dashboard-screen .rkl .rank-copy { min-width: 0; }
#dashboard-screen .rkl .rank-copy .nm { display: block; overflow: hidden; font-size: 11px; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
#dashboard-screen .rank-progress { height: 4px; display: block; overflow: hidden; margin-top: 5px; border-radius: 4px; background: #e2ecee; }
#dashboard-screen .rank-progress i { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,#43b6d5,#44ca91); }
#dashboard-screen .rkl .rk .val { display: flex; align-items: center; gap: 3px; color: #267b68; font-size: 13px; font-weight: 900; }
#dashboard-screen .rkl .rk .val small { color: #8ba0aa; font-size: 8px; }
#dashboard-screen .rkl .rk .val img { width: 23px; height: 23px; object-fit: contain; image-rendering: pixelated; }
#dashboard-screen .rkl .sprs { min-height: 28px; display: flex; margin-top: 3px; }
#dashboard-screen .rkl .sprs img { width: 29px; height: 29px; object-fit: contain; margin-right: -5px; image-rendering: pixelated; }
#dashboard-screen .rk-empty-state { min-height: 220px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; border: 1px dashed #cfe1e5; border-radius: 19px; background: linear-gradient(145deg,#f9fdff,#eef9f6); text-align: center; }
#dashboard-screen .rk-empty-state img { width: 86px; height: 86px; object-fit: contain; image-rendering: pixelated; filter: drop-shadow(0 9px 9px rgba(37,99,118,.16)); }
#dashboard-screen .rk-empty-state b { margin-top: 9px; color: #31586a; font-size: 13px; }
#dashboard-screen .rk-empty-state span { max-width: 230px; margin-top: 5px; color: #7a95a1; font-size: 9px; line-height: 1.45; }

/* Praça: cada linha explica a ação e tem alvo visual claro. */
#dashboard-screen .upi-community-card { background: linear-gradient(155deg,rgba(239,251,255,.96),rgba(235,251,244,.96)); }
#dashboard-screen .upi-community-card .erow { position: relative; min-height: 77px; margin-top: 8px; padding: 9px 10px; border: 1px solid rgba(48,130,157,.11); border-radius: 17px; background: rgba(255,255,255,.76); text-decoration: none; transition: .16s ease; }
#dashboard-screen .upi-community-card a.erow:hover { border-color: rgba(58,183,148,.38); background: #fff; transform: translateX(3px); box-shadow: 0 10px 24px rgba(43,112,127,.09); }
#dashboard-screen .upi-community-card .erow.primary { background: linear-gradient(135deg,#e7f8ff,#e9faf2); }
#dashboard-screen .upi-community-card .erow .ic { width: 53px; height: 53px; flex: none; }
#dashboard-screen .upi-community-card .erow .ic img { width: 48px; height: 48px; object-fit: contain; image-rendering: pixelated; }
#dashboard-screen .upi-community-card .erow .nm { font-size: 12px; font-weight: 850; }
#dashboard-screen .upi-community-card .erow .tm { margin-top: 3px; font-size: 9px; }
#dashboard-screen .row-arrow { margin-left: auto; color: #3ba786; font-size: 17px; font-weight: 800; }
#dashboard-screen .online-row .online-dot { width: 7px; height: 7px; display: inline-block; margin-right: 5px; border-radius: 50%; background: #44c98f; box-shadow: 0 0 0 5px rgba(68,201,143,.13); }
#dashboard-screen .online-label { margin-left: auto; padding: 5px 7px; border-radius: 999px; color: #238064; background: #e5f8ef; font-size: 7px; font-weight: 900; letter-spacing: .08em; }

@media (max-width: 1420px) {
  #dashboard-screen .team { grid-template-columns: repeat(3,minmax(0,1fr)); }
  #dashboard-screen .upi-account-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 1100px) {
  #dashboard-screen .upi-crowd-canvas { left: 0; width: 100vw; }
  #dashboard-screen .team { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #dashboard-screen .upi-account-identity { grid-template-columns: 1fr; }
  #dashboard-screen .upi-wallet { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: none; }
}
@media (max-width: 620px) {
  #dashboard-screen .team { grid-template-columns: 1fr; }
  #dashboard-screen .pokemon-card,#dashboard-screen .pokemon-card.empty { min-height: 330px; }
  #dashboard-screen .upi-account-stats { grid-template-columns: 1fr 1fr; }
  #dashboard-screen .upi-account-data { padding: 18px; }
  #dashboard-screen .upi-sync-pill { display: none; }
  #dashboard-screen .upi-event-details-overlay { padding: 8px; align-items: end; }
  #dashboard-screen .upi-event-details-dialog { width: 100%; max-height: calc(100dvh - 16px); border-radius: 25px; }
  #dashboard-screen .upi-event-details-head { grid-template-columns: 92px minmax(0,1fr); gap: 14px; min-height: 170px; padding: 25px 55px 22px 18px; }
  #dashboard-screen .upi-event-details-art { width: 88px; height: 104px; border-radius: 21px; }
  #dashboard-screen .upi-event-details-art img { width: 92px; height: 92px; }
  #dashboard-screen .upi-event-details-copy h2 { margin-top: 9px; font-size: 23px; }
  #dashboard-screen .upi-event-details-copy p { margin-top: 7px; font-size: 10px; }
  #dashboard-screen .upi-event-details-time { margin-top: 10px; padding: 7px 9px; font-size: 9px; }
  #dashboard-screen .upi-event-details-body { grid-template-columns: 1fr; padding: 19px 17px 16px; }
  #dashboard-screen .upi-event-bonus-list { grid-template-columns: 1fr; }
  #dashboard-screen .upi-event-details-actions { position: sticky; bottom: 0; padding: 12px 17px 17px; background: linear-gradient(transparent,#f1faf8 28%); }
  #dashboard-screen .upi-event-details-actions button { flex: 1; padding-inline: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  #dashboard-screen { --upi-pokemon-frame-x: 0% !important; }
  #dashboard-screen .upi-crowd-canvas { display: none; }
  #dashboard-screen .journey-play .upi-card-mons img,
  #dashboard-screen .upi-event-details-art img,
  #dashboard-screen .pokemon-card.is-shiny .card-foil { animation: none; }
}
