.recap-module__sTuQUG__pageContainer{min-height:100vh;padding:calc(var(--navbar-height,64px) + 3rem) 1.5rem 5rem;max-width:1100px;margin:0 auto}.recap-module__sTuQUG__header{text-align:center;margin-bottom:2.25rem}.recap-module__sTuQUG__title{color:#f4f3f6;letter-spacing:-.02em;margin:0 0 .5rem;font-family:Outfit,sans-serif;font-size:clamp(2.2rem,5vw,3rem);font-weight:800}.recap-module__sTuQUG__subtitle{color:#8b9cc0;white-space:nowrap;max-width:800px;margin:0 auto;font-family:Inter,sans-serif;font-size:1rem;line-height:1.5}.recap-module__sTuQUG__filterBar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.recap-module__sTuQUG__searchBox{flex:1;min-width:260px;position:relative}.recap-module__sTuQUG__searchIcon{color:#64748b;pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.recap-module__sTuQUG__searchInput{color:#f4f3f6;background:#ffffff08;border:1px solid #ffffff14;border-radius:8px;outline:none;width:100%;padding:8px 12px 8px 36px;font-family:Inter,sans-serif;font-size:.88rem;transition:border-color .15s}.recap-module__sTuQUG__searchInput:focus{border-color:#8b5cf699}.recap-module__sTuQUG__searchInput::placeholder{color:#64748b}.recap-module__sTuQUG__statsSummary{align-items:center;gap:1.25rem;display:flex}.recap-module__sTuQUG__summaryItem{color:#64748b;font-family:Inter,sans-serif;font-size:.84rem}.recap-module__sTuQUG__summaryVal{color:#8b5cf6;font-family:JetBrains Mono,monospace;font-weight:700}.recap-module__sTuQUG__gamesGrid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1.25rem;display:grid}.recap-module__sTuQUG__cardLink{color:inherit;text-decoration:none;display:block}.recap-module__sTuQUG__card{cursor:pointer;background:#ffffff05;border:1px solid #ffffff0f;border-radius:12px;flex-direction:column;gap:.85rem;padding:1.25rem;transition:transform .15s,border-color .15s;display:flex}.recap-module__sTuQUG__card:hover{border-color:#8b5cf666;transform:translateY(-3px)}.recap-module__sTuQUG__cardFooterHint{color:#64748b;text-align:right;margin-top:.2rem;font-family:Inter,sans-serif;font-size:.74rem;transition:color .15s}.recap-module__sTuQUG__card:hover .recap-module__sTuQUG__cardFooterHint{color:#8b5cf6}.recap-module__sTuQUG__cardHeader{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding-bottom:.75rem;display:flex}.recap-module__sTuQUG__mapName{color:#f4f3f6;font-family:Outfit,sans-serif;font-size:1.1rem;font-weight:700}.recap-module__sTuQUG__meta{align-items:center;gap:.4rem;display:flex}.recap-module__sTuQUG__gameIdTag{color:#8b5cf6;background:#8b5cf61f;border:1px solid #8b5cf640;border-radius:4px;padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:.76rem;font-weight:700}.recap-module__sTuQUG__durationTag,.recap-module__sTuQUG__timeTag{color:#64748b;font-family:JetBrains Mono,monospace;font-size:.74rem}.recap-module__sTuQUG__teams{flex-direction:column;gap:.65rem;display:flex}.recap-module__sTuQUG__team{background:#ffffff05;border:1px solid #ffffff0d;border-radius:8px;flex-direction:column;gap:.5rem;padding:.85rem;display:flex}.recap-module__sTuQUG__redTeamTitle{color:#f43f5e;font-weight:800}.recap-module__sTuQUG__greenTeamTitle{color:#22c55e;font-weight:800}.recap-module__sTuQUG__redTeamCard{background:#f43f5e08;border-color:#f43f5e38}.recap-module__sTuQUG__greenTeamCard{background:#22c55e08;border-color:#22c55e38}.recap-module__sTuQUG__teamWin{background:#22c55e08;border-color:#22c55e40}.recap-module__sTuQUG__teamLoss{background:#ffffff03;border-color:#ffffff0d}.recap-module__sTuQUG__teamLabel{color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:700;display:flex}.recap-module__sTuQUG__winBadge{color:#22c55e;background:#22c55e1f;border:1px solid #22c55e40;border-radius:4px;padding:1px 6px;font-family:Outfit,sans-serif;font-size:.68rem;font-weight:800}.recap-module__sTuQUG__lossBadge{color:#64748b;background:#ffffff0a;border:1px solid #ffffff14;border-radius:4px;padding:1px 6px;font-family:Outfit,sans-serif;font-size:.68rem;font-weight:800}.recap-module__sTuQUG__playerList{flex-direction:column;gap:.4rem;display:flex}.recap-module__sTuQUG__playerRow{justify-content:space-between;align-items:center;display:flex}.recap-module__sTuQUG__playerLeft{align-items:center;gap:.5rem;display:flex}.recap-module__sTuQUG__avatar{width:24px;height:24px;image-rendering:pixelated;border:1px solid #ffffff14;border-radius:5px}.recap-module__sTuQUG__playerName{color:#f4f3f6;font-family:Inter,sans-serif;font-size:.88rem;font-weight:600}.recap-module__sTuQUG__badges{align-items:center;gap:.35rem;display:flex}.recap-module__sTuQUG__bedBadge{color:#eab308;background:#eab3081a;border:1px solid #eab30833;border-radius:4px;padding:1px 5px;font-family:Inter,sans-serif;font-size:.68rem;font-weight:600}.recap-module__sTuQUG__mvpBadge{color:#38bdf8;background:#38bdf81a;border:1px solid #38bdf833;border-radius:4px;padding:1px 5px;font-family:Inter,sans-serif;font-size:.68rem;font-weight:600}.recap-module__sTuQUG__message{text-align:center;color:#8b9cc0;grid-column:1/-1;padding:3rem 1.5rem;font-family:Inter,sans-serif;font-size:.92rem}.recap-module__sTuQUG__spinner{border:2px solid #ffffff1a;border-top-color:#8b5cf6;border-radius:50%;width:24px;height:24px;margin:0 auto .85rem;animation:.8s linear infinite recap-module__sTuQUG__spin}@keyframes recap-module__sTuQUG__spin{to{transform:rotate(360deg)}}@media (max-width:768px){.recap-module__sTuQUG__filterBar{flex-direction:column;align-items:stretch}.recap-module__sTuQUG__gamesGrid{grid-template-columns:1fr}.recap-module__sTuQUG__subtitle{white-space:normal}}.recap-module__sTuQUG__modalOverlay{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;background:#08070cd9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.recap-module__sTuQUG__modalContent{background:#121018;border:1px solid #ffffff1a;border-radius:16px;width:100%;max-width:680px;max-height:90vh;padding:2rem;position:relative;overflow-y:auto;box-shadow:0 20px 40px #0009}.recap-module__sTuQUG__closeBtn{color:#8b9cc0;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;transition:color .15s,border-color .15s;display:flex;position:absolute;top:1.25rem;right:1.25rem}.recap-module__sTuQUG__closeBtn:hover{color:#fff;border-color:#ffffff40}.recap-module__sTuQUG__modalHeader{border-bottom:1px solid #ffffff14;margin-bottom:1.5rem;padding-bottom:1.25rem}.recap-module__sTuQUG__modalHeaderTitleRow{align-items:center;gap:.85rem;margin-bottom:.5rem;display:flex}.recap-module__sTuQUG__modalTitle{color:#f4f3f6;margin:0;font-family:Outfit,sans-serif;font-size:1.6rem;font-weight:800}.recap-module__sTuQUG__modalMetaRow{color:#64748b;align-items:center;gap:1rem;font-family:JetBrains Mono,monospace;font-size:.8rem;display:flex}.recap-module__sTuQUG__modalBody{flex-direction:column;gap:1.5rem;display:flex}.recap-module__sTuQUG__modalTeamSection{background:#ffffff05;border:1px solid #ffffff0f;border-radius:12px;padding:1.25rem}.recap-module__sTuQUG__modalTeamHeader{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.recap-module__sTuQUG__teamNameTitle{color:#f4f3f6;font-family:Outfit,sans-serif;font-size:1.05rem;font-weight:700}.recap-module__sTuQUG__modalRosterGrid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.85rem;display:grid}.recap-module__sTuQUG__modalPlayerCard{background:#ffffff05;border:1px solid #ffffff0f;border-radius:8px;align-items:center;gap:.75rem;padding:.75rem;display:flex}.recap-module__sTuQUG__modalAvatar{width:40px;height:40px;image-rendering:pixelated;border:1px solid #ffffff14;border-radius:8px}.recap-module__sTuQUG__modalPlayerInfo{flex-direction:column;gap:.25rem;display:flex}.recap-module__sTuQUG__modalPlayerName{color:#f4f3f6;font-family:Inter,sans-serif;font-size:.95rem;font-weight:700}.recap-module__sTuQUG__modalPlayerBadges{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}
