/* Navy + red, matching the club's actual colours (crest and race kit),
   on a white background. Flat throughout — no gradients or shadows. */
:root {
    --blue: #0b2f4a;
    --red: #b3202f;
    --red-dark: #8f1926;
    --bg: #ffffff;
    --panel: #ffffff;
    --border: #cfd6db;
    --text: #24282b;
}

* { box-sizing: border-box; }

body {
    font-family: Georgia, 'Times New Roman', serif;
    max-width: 900px;
    margin: 0 auto;
    padding: 0 1.25rem 3rem;
    background: var(--bg);
    color: var(--text);
    line-height: 1.55;
}

/* Plain title banner, navy with a red rule underneath — same two colours
   as the club crest and kit. */
h1 {
    margin: 0 -1.25rem 0;
    padding: 1.4rem 1.25rem 1.1rem;
    background: var(--blue);
    color: #ffffff;
    font-size: 1.7rem;
    font-weight: normal;
    letter-spacing: 0.03em;
    border-bottom: 3px solid var(--red);
}

h2 {
    color: var(--blue);
    font-weight: normal;
    border-bottom: 1px solid var(--border);
    padding-bottom: 0.3rem;
    margin-top: 2rem;
}

/* Horizontal nav strip under the masthead, underlined in red to pick up
   the accent colour rather than repeating the navy. */
nav {
    margin: 0 -1.25rem 1.75rem;
    padding: 0.7rem 1.25rem;
    background: #f4f6f7;
    border-bottom: 2px solid var(--red);
    font-family: Arial, sans-serif;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

nav a {
    display: inline-block;
    margin-right: 1.5rem;
    margin-bottom: 0.3rem;
    color: var(--blue);
    text-decoration: none;
}
nav a:hover { color: var(--red); text-decoration: underline; }
nav strong { color: var(--text); text-transform: none; letter-spacing: normal; }

table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1.5rem;
    background: var(--panel);
    border: 1px solid var(--border);
}

/* On a phone-width screen a table with several columns physically
   can't fit and stay legible — rather than let every column shrink to
   the point of being unreadable, this lets the table keep a sensible
   minimum width and scroll sideways inside its own box instead. */
.table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 1.5rem;
    border: 1px solid var(--border);
}
.table-scroll table {
    margin-bottom: 0;
    border: none;
    min-width: 640px;
}

th, td {
    text-align: left;
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid var(--border);
    font-family: Arial, sans-serif;
    font-size: 0.95rem;
}

th {
    background: var(--blue);
    color: #ffffff;
    font-weight: normal;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

td:nth-child(odd) { background: #ffffff; }
td:nth-child(even) { background: #f7f5ef; }
tr:last-child td { border-bottom: none; }

/* Solid red buttons — the accent colour doing the "action" work, navy
   stays reserved for structural elements (banner, table headers). */
.btn {
    display: inline-block;
    padding: 0.35rem 0.8rem;
    margin: 0.15rem 0.4rem 0.15rem 0;
    background: var(--red);
    color: #ffffff;
    text-decoration: none;
    border: 1px solid var(--red);
    border-radius: 8px;
    font-family: Arial, sans-serif;
    font-size: 0.88rem;
    cursor: pointer;
}
.btn:hover { background: var(--red-dark); border-color: var(--red-dark); }
.btn:active { background: #6e1520; border-color: #6e1520; }

.error {
    color: var(--red-dark);
    font-family: Arial, sans-serif;
    font-weight: bold;
    border-left: 3px solid var(--red);
    padding: 0.5rem 0.8rem;
    background: #fbeaea;
}
.success {
    color: var(--blue);
    font-family: Arial, sans-serif;
    font-weight: bold;
    border-left: 3px solid var(--blue);
    padding: 0.5rem 0.8rem;
    background: #eaf1f6;
}

form {
    background: var(--panel);
    border: 1px solid var(--border);
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
}

form label {
    display: block;
    margin-top: 0.8rem;
    font-family: Arial, sans-serif;
    font-weight: bold;
    color: var(--blue);
    font-size: 0.85rem;
}

form input, form select {
    padding: 0.4rem 0.5rem;
    width: 100%;
    max-width: 300px;
    box-sizing: border-box;
    border: 1px solid var(--border);
    border-radius: 0;
    margin-top: 0.25rem;
    font-family: Arial, sans-serif;
    font-size: 0.95rem;
    background: #ffffff;
}
form input:focus, form select:focus {
    outline: none;
    border-color: var(--blue);
}

hr {
    border: none;
    border-top: 1px solid var(--border);
    margin: 1.5rem 0;
}

@media (max-width: 480px) {
    body { padding: 0 0.75rem 2rem; }
    h1 {
        margin: 0 -0.75rem 0;
        padding: 1.1rem 0.75rem 0.9rem;
        font-size: 1.4rem;
    }
    nav {
        margin: 0 -0.75rem 1.5rem;
        padding: 0.6rem 0.75rem;
    }
}
