:root{
  --bg:#f2f5f8;
  --card:#ffffff;
  --text:#111111;
  --muted:#6f7785;
  --line:#dfe4ea;
  --gold:#d2a900;
  --black:#050505;
  --good:#0f8a43;
  --planned:#9a6a00;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
button,input,select{font:inherit}
.hidden{display:none!important}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:28px}
.login-card{width:min(640px,100%);background:var(--card);border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:0 16px 45px rgba(10,20,35,.08)}
.pill{display:inline-flex;align-items:center;background:var(--black);color:var(--gold);font-weight:900;letter-spacing:.05em;border-radius:999px;padding:8px 16px;font-size:14px;margin-bottom:14px}
h1{font-size:clamp(32px,5vw,56px);line-height:.96;margin:0 0 12px;font-weight:900;letter-spacing:-.055em}
p{color:var(--muted);margin:0 0 24px;font-size:18px}.login-row{display:flex;gap:12px}.login-row input{flex:1}.login-error{color:#b00020;margin-top:14px;font-weight:750}
.app{max-width:1500px;margin:0 auto;padding:28px 24px 50px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:36px}.actions{display:flex;gap:12px}button{border:1px solid var(--line);background:#fff;border-radius:18px;padding:14px 20px;font-weight:850;cursor:pointer}button.primary{background:#000;color:#fff;border-color:#000}input,select{height:58px;border:1px solid var(--line);background:#fff;border-radius:18px;padding:0 18px;outline:none;min-width:0}input:focus,select:focus,button:focus{box-shadow:0 0 0 4px rgba(210,169,0,.24)}.filters{display:grid;grid-template-columns:1.6fr .55fr .65fr .85fr .7fr;gap:14px;margin-bottom:18px}.status-text{color:var(--muted);font-weight:750;margin:12px 0 20px}.calendar{display:grid;gap:16px}.event-card{background:var(--card);border:1px solid var(--line);border-radius:26px;padding:22px;box-shadow:0 12px 30px rgba(10,20,35,.05)}.event-head{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:start}.datebox{width:82px;border-radius:20px;background:#111;color:#fff;text-align:center;overflow:hidden}.datebox .day{font-size:34px;font-weight:950;line-height:1;padding:14px 0 4px}.datebox .month{background:var(--gold);color:#111;font-weight:950;padding:6px 0;text-transform:uppercase;font-size:13px}.event-title{font-size:24px;font-weight:950;letter-spacing:-.03em;margin-bottom:7px}.meta{color:var(--muted);font-weight:750;display:flex;gap:10px;flex-wrap:wrap}.badge{border-radius:999px;padding:7px 12px;font-weight:900;font-size:13px;background:#f0f2f5;color:#333}.badge.done{background:#e7f6ed;color:var(--good)}.badge.planned{background:#fff3cf;color:var(--planned)}.rows{margin-top:18px;border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:1.1fr .7fr .7fr .5fr .5fr .6fr;gap:12px;padding:13px 0;border-bottom:1px solid #eef1f4;align-items:center}.row.header{color:var(--muted);font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.athlete{font-weight:900}.result{font-weight:900}.empty{background:#fff;border-radius:24px;padding:42px;text-align:center;color:var(--muted);font-size:24px;font-weight:850}@media(max-width:900px){.app{padding:20px 14px}.topbar{display:block}.actions{margin-top:18px}.filters{grid-template-columns:1fr}.login-row{display:grid}.event-head{grid-template-columns:1fr}.datebox{width:100%;display:flex}.datebox .day{flex:1}.datebox .month{display:grid;place-items:center;padding:0 18px}.row{grid-template-columns:1fr 1fr}.row.header{display:none}.row span:nth-child(n+3){color:var(--muted)}}
