:root{--bg-deep:#071f18;--bg-mid:#0b3d2e;--bg-panel:#0f4a38;--ink:#f4f7f5;--ink-muted:#b7cfc4;--accent:#c9a227;--accent-soft:#e8d48a;--line:#f4f7f524;--gold:#d4af37;--silver:#c0c7ce;--bronze:#cd7f32;--danger:#ff8a80;--font-display:"Archivo Black", "Arial Black", sans-serif;--font-body:"Source Sans 3", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(ellipse 90% 60% at 10% -10%, #1a6b4f 0%, transparent 55%), radial-gradient(ellipse 70% 50% at 100% 0%, #123528 0%, transparent 50%), linear-gradient(165deg, var(--bg-deep) 0%, var(--bg-mid) 45%, #08251c 100%);background-attachment:fixed}a{color:inherit;text-decoration:none}button,input,select{font:inherit}#root{min-height:100vh}.shell{max-width:1100px;margin:0 auto;padding:1.25rem 1.25rem 3rem}.topbar{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:2rem;animation:.55s both rise;display:flex}.brand{font-family:var(--font-display);letter-spacing:.02em;font-size:clamp(1.6rem,4vw,2.4rem);line-height:1}.brand span{color:var(--accent)}.tagline{color:var(--ink-muted);font-size:.95rem}.hero{margin-bottom:1.75rem;animation:.65s 50ms both rise}.hero h1{font-family:var(--font-display);letter-spacing:.01em;margin:0 0 .4rem;font-size:clamp(1.8rem,5vw,3rem)}.hero p{color:var(--ink-muted);max-width:36rem;margin:0}.filters{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-bottom:1.5rem;animation:.7s .1s both rise;display:grid}.filters label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);flex-direction:column;gap:.35rem;font-size:.8rem;display:flex}.filters input,.filters select{border:1px solid var(--line);color:var(--ink);background:#071f188c;border-radius:10px;padding:.65rem .75rem}.month-block{margin-bottom:1.75rem;animation:.75s both rise}.month-block h2{font-family:var(--font-display);color:var(--accent-soft);letter-spacing:.04em;margin:0 0 .75rem;font-size:1.15rem}.tournament-list{flex-direction:column;gap:.65rem;display:flex}.tournament-row{border:1px solid var(--line);background:linear-gradient(120deg,#0f4a38a6,#071f1866);border-radius:14px;grid-template-columns:7.5rem 1fr auto;align-items:center;gap:1rem;padding:1rem 1.1rem;transition:transform .2s,border-color .2s,background .2s;display:grid}.tournament-row:hover{background:linear-gradient(120deg,#145f48bf,#071f188c);border-color:#c9a2278c;transform:translateY(-2px)}.tournament-dates{color:var(--accent-soft);letter-spacing:.03em;font-size:.85rem;font-weight:700}.tournament-name{margin:0 0 .15rem;font-size:1.15rem;font-weight:700}.tournament-meta{color:var(--ink-muted);margin:0;font-size:.92rem}.status-chip{text-transform:uppercase;letter-spacing:.07em;border:1px solid var(--line);color:var(--ink-muted);white-space:nowrap;border-radius:999px;padding:.35rem .55rem;font-size:.72rem}.back-link{color:var(--accent-soft);align-items:center;gap:.35rem;margin-bottom:1.25rem;font-weight:600;display:inline-flex}.tournament-header{margin-bottom:2rem;animation:.55s both rise}.tournament-header h1{font-family:var(--font-display);margin:0 0 .5rem;font-size:clamp(1.8rem,5vw,2.8rem)}.tournament-header .facts{color:var(--ink-muted);flex-wrap:wrap;gap:.75rem 1.25rem;font-size:1rem;display:flex}.section-title{font-family:var(--font-display);letter-spacing:.06em;color:var(--accent);margin:0 0 1rem;font-size:1.2rem}.event-block{border:1px solid var(--line);background:#071f1873;border-radius:16px;margin-bottom:2rem;padding:1.25rem 1.15rem 1.4rem;animation:.7s both rise}.event-block h3{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:1.05rem}.event-stats{color:var(--ink-muted);letter-spacing:.04em;margin:.35rem 0 1rem;font-size:.88rem}.podium-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;display:grid}.podium-card{border:1px solid var(--line);background:#0f4a3859;border-radius:12px;padding:.9rem 1rem}.podium-card.place-1{border-color:#d4af378c;box-shadow:inset 0 0 0 1px #d4af3733}.podium-place{font-family:var(--font-display);margin:0 0 .35rem;font-size:1.4rem}.place-1 .podium-place{color:var(--gold)}.place-2 .podium-place{color:var(--silver)}.place-34 .podium-place{color:var(--bronze)}.player-line{margin:.15rem 0;font-weight:700}.player-meta{color:var(--ink-muted);margin:0;font-size:.85rem}.empty,.error,.loading{color:var(--ink-muted);padding:1.5rem 0}.error{color:var(--danger)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.tournament-row{grid-template-columns:1fr;gap:.45rem}.status-chip{justify-self:start}}
