:root{--bg:#0b1220;--card:#ffffff0f;--stroke:#ffffff1a;--text:#eef4ff;--muted:#eef4ffad;--blue:#4c7dff;--green:#2ecc71;--danger:#ff6b6b;--radius:22px}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at top, #4c7dff3d, transparent 32%), radial-gradient(circle at bottom, #2ecc7124, transparent 30%), var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}.page{min-height:100vh;padding:24px 16px 56px}.shell{max-width:1180px;margin:0 auto}.hero{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brandLogo{background:linear-gradient(135deg,#4c7dff,#2ecc71);border-radius:16px;place-items:center;width:46px;height:46px;font-size:22px;display:grid;box-shadow:0 12px 28px #0000003d}.brandTitle{font-size:28px;font-weight:800;line-height:1}.brandSubtitle{color:var(--muted);margin-top:6px;font-size:13px}.apiBadge{border:1px solid var(--stroke);color:var(--muted);background:#ffffff0a;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:inline-flex}.apiBadge.online{color:#d8ffe5;border-color:#2ecc714d}.apiBadge.offline{color:#ffd6d6;border-color:#ff6b6b4d}.grid{gap:16px;display:grid}.twoCols{grid-template-columns:1.05fr .95fr}.threeCols{grid-template-columns:1fr 1fr 1fr}.stack{gap:16px;display:grid}.card{background:var(--card);border:1px solid var(--stroke);border-radius:var(--radius);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:18px;box-shadow:0 24px 60px #0000003d}.card h2{margin:0 0 14px;font-size:20px}label{color:var(--muted);margin:12px 0 6px;font-size:13px;display:block}input,select,button{border:1px solid var(--stroke);border-radius:14px;width:100%;padding:13px 14px;font-size:15px}input,select{color:var(--text);background:#00000038;outline:none}button{background:var(--blue);color:#fff;cursor:pointer;border:none;font-weight:700}button.secondary{color:var(--text);border:1px solid var(--stroke);background:#ffffff14}button.danger{background:var(--danger)}button:disabled{opacity:.6;cursor:not-allowed}.row{gap:10px;display:flex}.row.compact{gap:8px}.row>*{flex:1}.topGap{margin-top:14px}.statusText{min-height:18px;color:var(--muted);margin-top:12px;font-size:13px}.kv{border-bottom:1px solid #ffffff0d;justify-content:space-between;gap:12px;padding:8px 0;display:flex}.kv span{color:var(--muted)}.money{letter-spacing:-.02em;font-size:32px;font-weight:800}.money.negative{color:#ffd6d6}.mutedText{color:var(--muted);font-size:14px}.athleteList{flex-wrap:wrap;gap:10px;display:flex}.athleteCard{text-align:left;border:1px solid var(--stroke);background:#ffffff0a;border-radius:18px;width:auto;min-width:190px;padding:14px}.athleteCard.active{background:#4c7dff1f;outline:2px solid #4c7dffa6}.athleteName{font-weight:700}.athleteMeta{color:var(--muted);margin-top:6px;font-size:13px}.sectionHeader{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.eventList{gap:10px;display:grid}.eventCard{border:1px solid var(--stroke);background:#ffffff0a;border-radius:18px;padding:14px}.eventCard.cancelled{opacity:.62}.eventTop{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.eventTitle{font-weight:700}.eventMeta{color:var(--muted);margin-top:6px;font-size:13px;line-height:1.45}.tagWrap{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.tag{color:#d5ffe4;background:#2ecc7129;border:1px solid #2ecc713d;border-radius:999px;padding:6px 10px;font-size:12px;display:inline-block}.tag.gray{color:var(--muted);background:#ffffff14;border-color:#ffffff1a}.subTitle{color:var(--text);margin-bottom:10px;font-size:14px;font-weight:700}.listSimple{gap:8px;display:grid}.simpleItem{border:1px solid var(--stroke);background:#ffffff0a;border-radius:16px;justify-content:space-between;gap:12px;padding:12px 14px;display:flex}.simpleItem span{color:var(--muted)}@media (width<=960px){.twoCols,.threeCols{grid-template-columns:1fr}.hero{flex-direction:column;align-items:flex-start}.row{flex-direction:column}}
