/* AG54 Gamification Phase 1-3 — AG54-25/26/27/28 + extras */
@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap');
.ag54-toast{position:fixed;bottom:52px;left:50%;transform:translateX(-50%) translateY(16px);background:#0D0D0D;border:2px solid #D4A574;padding:9px 18px;font-family:'Press Start 2P',monospace;font-size:7px;color:#D4A574;letter-spacing:.1em;z-index:9100;opacity:0;transition:opacity .25s,transform .25s;white-space:nowrap;pointer-events:none;box-shadow:0 0 20px rgba(212,165,116,.3)}
.ag54-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* AG54-25 Secret Fighter */
.secret-slot{display:none;aspect-ratio:1;cursor:pointer;position:relative;overflow:hidden;border:2px solid transparent}
.secret-slot.visible{display:block;animation:secret-reveal .6s cubic-bezier(.16,1,.3,1) forwards}
@keyframes secret-reveal{0%{opacity:0;transform:scale(.3) rotate(-10deg);filter:brightness(4)}65%{opacity:1;transform:scale(1.08);filter:brightness(1.5)}100%{opacity:1;transform:scale(1);filter:brightness(1)}}
.mythic-border{position:absolute;inset:0;pointer-events:none;z-index:2;border:3px solid #ffd700;box-shadow:0 0 18px #ffd700,inset 0 0 12px rgba(153,0,255,.3);animation:mythic-pulse 2.2s ease-in-out infinite}
@keyframes mythic-pulse{0%,100%{box-shadow:0 0 12px #ffd700,inset 0 0 8px rgba(153,0,255,.2)}50%{box-shadow:0 0 30px #ffd700,inset 0 0 18px rgba(153,0,255,.5)}}
.mythic-badge{position:absolute;bottom:3px;left:3px;z-index:3;font-family:'Press Start 2P',monospace;font-size:4px;padding:2px 5px;background:linear-gradient(135deg,#ffd700,#9900ff);color:#000;letter-spacing:.06em}
.secret-slot img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.confetti-particle{position:fixed;pointer-events:none;z-index:9000;border-radius:2px;animation:confetti-fall linear forwards}
@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0deg);opacity:1}100%{transform:translateY(100vh) rotate(720deg);opacity:0}}
.country.secret-region{animation:secret-map-pulse 2s ease-in-out infinite}
@keyframes secret-map-pulse{0%,100%{fill:#D4AF37;filter:drop-shadow(0 0 6px rgba(212,175,55,.6))}50%{fill:#ffd700;filter:drop-shadow(0 0 18px rgba(255,215,0,.95))}}
/* AG54-26 Region Badges */
.region-badges-panel{padding:8px 10px;border-bottom:2px solid rgba(212,165,116,.18);background:#0D0D0D}
.region-badges-title{font-family:'Press Start 2P',monospace;font-size:4.5px;color:#4A4A4A;letter-spacing:.14em;margin-bottom:6px}
.region-badges-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
.region-badge-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 3px;border:1px solid rgba(212,165,116,.12);background:#111;cursor:default;transition:border-color .15s;position:relative}
.region-badge-item.earned{border-color:var(--rc,#D4A574)}
.region-badge-item.earned::after{content:'✓';position:absolute;top:2px;right:3px;font-size:7px;color:var(--rc,#D4A574)}
.rbi-icon{font-size:16px;line-height:1}.rbi-label{font-family:'Press Start 2P',monospace;font-size:3.5px;color:#4A4A4A;letter-spacing:.06em;text-align:center}
.region-badge-item.earned .rbi-label{color:var(--rc,#D4A574)}
.rbi-prog{font-family:'Press Start 2P',monospace;font-size:4px;color:#333}
.region-badge-item.earned .rbi-prog{color:var(--rc,#D4A574)}
.rbi-track{width:100%;height:3px;background:#1A1A1A;overflow:hidden;border-radius:1px}
.rbi-fill{height:100%;border-radius:1px;transition:width .6s}
/* AG54-27 Tooltips */
.map-tooltip{position:fixed;z-index:1000;pointer-events:none;background:#0D0D0D;border:2px solid #D4A574;border-radius:5px;padding:10px 13px;min-width:185px;max-width:230px;box-shadow:0 8px 28px rgba(212,165,116,.2);opacity:0;transform:translateY(8px);transition:opacity .15s,transform .15s}
.map-tooltip.visible{opacity:1;transform:translateY(0)}
.tt-flag{font-size:16px;margin-bottom:3px;display:block;line-height:1}
.tt-country{font-family:'Press Start 2P',monospace;font-size:6px;color:#F0EDE6;letter-spacing:.05em;margin-bottom:5px;line-height:1.5}
.tt-fighter{font-family:'Press Start 2P',monospace;font-size:5.5px;color:#D4A574;letter-spacing:.04em;margin-bottom:3px}
.tt-soon{font-size:9px;color:#555;margin-bottom:3px;font-style:italic}
.tt-prog{font-size:9px;color:#444;margin-top:2px}
.tt-rarity{display:inline-block;font-family:'Press Start 2P',monospace;font-size:4px;padding:1px 5px;margin-left:5px;vertical-align:middle;border-radius:2px}
.tt-r-common{background:rgba(212,175,55,.12);color:#D4A574;border:1px solid #D4A574}
.tt-r-rare{background:rgba(68,136,204,.12);color:#4488CC;border:1px solid #4488CC}
.tt-r-epic{background:rgba(155,89,182,.12);color:#9B59B6;border:1px solid #9B59B6}
.tt-r-legendary{background:rgba(204,0,0,.12);color:#CC0000;border:1px solid #CC0000}
.tt-r-mythic{background:linear-gradient(135deg,rgba(255,215,0,.15),rgba(153,0,255,.15));color:#ffd700;border:1px solid #ffd700}
.tt-region{display:inline-block;font-family:'Press Start 2P',monospace;font-size:4.5px;padding:2px 6px;border-radius:10px;margin-top:4px;letter-spacing:.05em}
.tt-region.west{background:rgba(245,166,35,.18);color:#F5A623;border:1px solid #F5A623}
.tt-region.north{background:rgba(155,89,182,.18);color:#9B59B6;border:1px solid #9B59B6}
.tt-region.east{background:rgba(68,136,204,.18);color:#4488CC;border:1px solid #4488CC}
.tt-region.central{background:rgba(30,124,58,.18);color:#1E7C3A;border:1px solid #1E7C3A}
.tt-region.south{background:rgba(204,0,0,.15);color:#CC0000;border:1px solid #CC0000}
/* AG54-28 Leaderboard */
.lb-overlay{position:fixed;inset:0;background:rgba(4,4,4,.97);z-index:500;display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .22s;overflow:hidden}
.lb-overlay.on{opacity:1;pointer-events:all}
.lb-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:3px solid #D4A574;background:#0D0D0D;flex-shrink:0;flex-wrap:wrap;gap:8px}
.lb-hdr-title{font-family:'Press Start 2P',monospace;font-size:clamp(.5rem,1.4vw,.8rem);color:#D4A574;letter-spacing:.08em}
.lb-controls{display:flex;gap:6px;padding:8px 18px;border-bottom:2px solid rgba(212,165,116,.12);flex-shrink:0;flex-wrap:wrap;align-items:center;background:#0D0D0D}
.lb-sort-btn,.lb-region-select{font-family:'Press Start 2P',monospace;font-size:5px;padding:4px 8px;background:#1A1A1A;border:1.5px solid #333;color:#B8B4AC;cursor:pointer;letter-spacing:.06em;transition:border-color .12s,color .12s}
.lb-sort-btn:hover,.lb-sort-btn.active{border-color:#D4A574;color:#D4A574}
.lb-cnt{font-family:'Press Start 2P',monospace;font-size:4.5px;color:#444;margin-left:auto;letter-spacing:.06em}
.lb-body{flex:1;overflow-y:auto;padding:12px 18px;scrollbar-width:thin;scrollbar-color:rgba(212,165,116,.25) transparent}
.lb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:9px}
.lb-entry{background:#0A0A0A;border-radius:4px;padding:10px;border-left:4px solid #222;display:grid;grid-template-columns:26px 40px 1fr auto;gap:7px;align-items:center;cursor:pointer;transition:border-color .12s,background .12s}
.lb-entry:hover{background:#111}
.lb-entry.r1{border-left-color:#ffd700;background:#0C0B08}.lb-entry.r2{border-left-color:#C0C0C0;background:#0A0A0B}.lb-entry.r3{border-left-color:#CD7F32;background:#0B0A08}
.lb-rank{font-family:'Press Start 2P',monospace;font-size:8px;text-align:center}
.r1 .lb-rank{color:#ffd700}.r2 .lb-rank{color:#C0C0C0}.r3 .lb-rank{color:#CD7F32}
.lb-av{width:40px;height:40px;overflow:hidden;border:1.5px solid #1E1E1E;flex-shrink:0}
.r1 .lb-av{border-color:#ffd700}.r2 .lb-av{border-color:#C0C0C0}.r3 .lb-av{border-color:#CD7F32}
.lb-av img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.lb-av-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:18px;background:#111}
.lb-info{min-width:0}
.lb-name{font-family:'Press Start 2P',monospace;font-size:5.5px;color:#F0EDE6;letter-spacing:.04em;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-nat{font-size:9px;color:#555;margin-bottom:2px}
.lb-reg-badge{display:inline-block;padding:1px 5px;border-radius:8px;font-family:'Press Start 2P',monospace;font-size:3.5px;letter-spacing:.05em}
.lb-reg-badge.west{background:rgba(245,166,35,.18);color:#F5A623}.lb-reg-badge.north{background:rgba(155,89,182,.18);color:#9B59B6}
.lb-reg-badge.east{background:rgba(68,136,204,.18);color:#4488CC}.lb-reg-badge.central{background:rgba(30,124,58,.18);color:#1E7C3A}
.lb-reg-badge.south{background:rgba(204,0,0,.15);color:#CC0000}
.lb-stats{text-align:right;flex-shrink:0}
.lb-hp{font-family:'Press Start 2P',monospace;font-size:6.5px;color:#CC0000;letter-spacing:.04em;margin-bottom:2px}
.lb-likes{font-size:9px;color:#444;margin-bottom:2px}
.lb-trend{font-size:11px}.trend-up{color:#2D7A3A}.trend-down{color:#CC0000}
.lb-bar{grid-column:1/-1;height:3px;background:#111;overflow:hidden;border-radius:1px;margin-top:3px}
.lb-bar-fill{height:100%;background:linear-gradient(90deg,#CC0000,#D4A574);border-radius:1px;transition:width 1s cubic-bezier(.16,1,.3,1)}
.lb-trigger-btn{font-family:'Press Start 2P',monospace;font-size:5px;padding:4px 8px;background:rgba(212,165,116,.08);border:1.5px solid rgba(212,165,116,.3);color:#D4A574;cursor:pointer;letter-spacing:.06em;transition:background .12s,border-color .12s}
.lb-trigger-btn:hover{background:rgba(212,165,116,.14);border-color:#D4A574}
.lb-close-btn{font-family:'Press Start 2P',monospace;font-size:6px;color:#B8B4AC;background:#1A1A1A;border:1.5px solid #333;padding:5px 10px;cursor:pointer}
.lb-close-btn:hover{border-color:#D4A574;color:#D4A574}
/* Progress Panel */
.progress-panel{padding:8px 10px;border-bottom:2px solid rgba(212,165,116,.18)}
.progress-title{font-family:'Press Start 2P',monospace;font-size:4.5px;color:#4A4A4A;letter-spacing:.14em;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}
.prog-pct{color:#D4A574}
.prog-region-row{margin-bottom:4px}
.prog-region-label{display:flex;justify-content:space-between;font-family:'Press Start 2P',monospace;font-size:4px;color:#555;letter-spacing:.06em;margin-bottom:2px}
.prog-bar{height:6px;background:#0A0A0A;border:1px solid #1E1E1E;overflow:hidden}
.prog-fill{height:100%;transition:width .8s cubic-bezier(.16,1,.3,1)}
/* Compare Panel */
.compare-panel{padding:8px 10px;border-bottom:2px solid rgba(212,165,116,.18)}
.compare-title{font-family:'Press Start 2P',monospace;font-size:4.5px;color:#4A4A4A;letter-spacing:.14em;margin-bottom:6px;display:flex;justify-content:space-between}
.compare-select{font-family:'Press Start 2P',monospace;font-size:4.5px;padding:3px 6px;background:#111;border:1.5px solid #1E1E1E;color:#B8B4AC;cursor:pointer;width:100%;margin-bottom:5px}
.compare-stat-row{display:grid;grid-template-columns:1fr auto 1fr;gap:4px;align-items:center;margin-bottom:4px}
.compare-bar-l,.compare-bar-r{height:6px;background:#0A0A0A;border:1px solid #1E1E1E;position:relative;overflow:hidden}
.compare-fill-l{height:100%;position:absolute;right:0;top:0;transition:width .6s cubic-bezier(.16,1,.3,1)}
.compare-fill-r{height:100%;position:absolute;left:0;top:0;transition:width .6s cubic-bezier(.16,1,.3,1)}
.compare-stat-lbl{font-family:'Press Start 2P',monospace;font-size:4px;color:#555;text-align:center;letter-spacing:.05em}
.compare-result{font-family:'Press Start 2P',monospace;font-size:6px;color:#D4A574;text-align:center;margin-top:6px;letter-spacing:.08em;min-height:14px}
/* Challenges */
.challenges-panel{padding:8px 10px;border-bottom:2px solid rgba(212,165,116,.18)}
.challenges-title{font-family:'Press Start 2P',monospace;font-size:4.5px;color:#4A4A4A;letter-spacing:.14em;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}
.ch-timer{font-family:'Press Start 2P',monospace;font-size:4px;color:#CC0000;letter-spacing:.06em}
.challenge-item{display:flex;align-items:center;gap:7px;padding:5px 7px;border:1px solid rgba(212,165,116,.12);background:#0A0A0A;margin-bottom:4px;cursor:pointer;transition:border-color .12s}
.challenge-item:hover{border-color:rgba(212,165,116,.3)}
.challenge-item.done{border-color:rgba(45,122,58,.4);opacity:.7}
.ch-icon{font-size:14px;flex-shrink:0;width:22px;text-align:center}
.ch-info{flex:1;min-width:0}
.ch-name{font-family:'Press Start 2P',monospace;font-size:5px;color:#F0EDE6;letter-spacing:.04em;margin-bottom:2px}
.challenge-item.done .ch-name{color:#555;text-decoration:line-through}
.ch-desc{font-size:9px;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-xp{font-family:'Press Start 2P',monospace;font-size:5px;color:#D4A574;flex-shrink:0}
.challenge-item.done .ch-xp{color:#2D7A3A}
.ch-done-check{color:#2D7A3A;font-size:12px;flex-shrink:0}
@media(max-width:640px){.lb-grid{grid-template-columns:1fr}.lb-entry{grid-template-columns:22px 36px 1fr auto;gap:5px}.lb-av{width:36px;height:36px}.map-tooltip{min-width:160px}}
