:root{
  --bg:#1e1e1e;
  --fg:#ffffff;
  --accent:#e74c3c;
  --card:#2c2c2c;
}
*{box-sizing:border-box;margin:0;padding:0;font-family:"Roboto",sans-serif;color:var(--fg);}
body{background-color:var(--bg);line-height:1.5;}
header{background:var(--card);padding:1rem;position:sticky;top:0;z-index:10;}
h1{text-align:center;margin-bottom:0.5rem;}
nav{display:flex;justify-content:center;gap:0.5rem;flex-wrap:wrap;}
nav button{background:var(--accent);border:none;padding:0.5rem 1rem;border-radius:0.5rem;cursor:pointer;}
nav button.active,nav button:hover{filter:brightness(1.2);}
main{max-width:1000px;margin:2rem auto;padding:0 1rem;}
.section.hidden{display:none;}
.card{background:var(--card);padding:1rem;border-radius:0.75rem;box-shadow:0 4px 6px rgba(0,0,0,0.4);margin-bottom:1rem;}
form label{display:block;margin:0.5rem 0;}
form input,form select{width:100%;padding:0.25rem;margin-top:0.25rem;border:none;border-radius:0.25rem;}
form button{margin-top:0.5rem;padding:0.5rem;border:none;background:var(--accent);border-radius:0.5rem;cursor:pointer;}
table{width:100%;border-collapse:collapse;margin-top:1rem;}
th,td{padding:0.5rem;text-align:left;border-bottom:1px solid #555;}
th{background:#333;}
#calendar-wrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;}
.month{border:1px solid #444;border-radius:0.5rem;}
.month h3{text-align:center;background:#333;padding:0.25rem;border-top-left-radius:0.5rem;border-top-right-radius:0.5rem;}
.days{display:grid;grid-template-columns:repeat(7,1fr);}
.day{padding:0.25rem;text-align:center;border:1px solid #555;font-size:0.8rem;}
.train{background:#3498db;}
.race{background:#c0392b;}
.Swim{background:#1abc9c;}
.Bike{background:#e67e22;}
.Run{background:#2ecc71;}
.bar{display:flex;align-items:center;gap:0.5rem;margin:0.25rem 0;}
progress{width:100%;height:1rem;}
dialog{border:none;border-radius:0.75rem;max-width:300px;}
menu{display:flex;justify-content:space-between;margin-top:0.5rem;}
footer{display:flex;justify-content:center;padding:1rem;}
footer button{background:var(--accent);border:none;padding:0.5rem 1.5rem;border-radius:0.5rem;cursor:pointer;}
