/* =========================
   BASE DU SITE
========================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Arial, sans-serif;
    background-color: #0b0b0f;
    color: white;
}


/* =========================
   BARRE DE NAVIGATION
========================= */

header {
    width: 100%;
    height: 80px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 0 60px;

    background-color: #111116;
    border-bottom: 1px solid #292930;
}


/* Logo */

.logo {
    display: flex;
    align-items: center;
}

.logo img {
    height: 56px;
    width: auto;
    display: block;
}


/* Menu */

nav {
    display: flex;
    gap: 30px;
}

nav a {
    color: white;
    text-decoration: none;
    font-size: 15px;
    font-weight: bold;

    transition: 0.3s;
}

nav a:hover {
    color: #ff1e1e;
}


/* =========================
   HERO
========================= */

.hero {
    min-height: 600px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    text-align: center;

    padding: 40px;
}

.hero h1 {
    font-size: 70px;
    letter-spacing: 5px;
    margin-bottom: 20px;
}

.hero p {
    font-size: 20px;
    color: #bdbdbd;
    margin-bottom: 35px;
}


/* Bouton */

.hero button {
    padding: 15px 30px;

    border: none;
    border-radius: 4px;

    background-color: #ff1e1e;
    color: white;

    font-size: 16px;
    font-weight: bold;

    cursor: pointer;

    transition: 0.3s;
}

.hero button:hover {
    background-color: #d41414;
    transform: scale(1.05);
}


/* =========================
   PROCHAINE COURSE
========================= */

.next-race {
    padding: 80px 10%;
    text-align: center;

    background-color: #111116;
}

.next-race h2 {
    font-size: 16px;
    letter-spacing: 3px;
    color: #ff1e1e;

    margin-bottom: 20px;
}

.next-race h3 {
    font-size: 40px;
    margin-bottom: 10px;
}

.next-race p {
    color: #999;
}


/* =========================
   CHAMPIONNAT
========================= */

.championship {
    padding: 80px 10%;
    text-align: center;
}

.championship h2 {
    font-size: 35px;
    margin-bottom: 50px;
}

.championship > div {
    display: inline-block;

    width: 40%;

    margin: 10px;
    padding: 30px;

    background-color: #15151b;

    border: 1px solid #292930;
    border-radius: 8px;
}

.championship h3 {
    margin-bottom: 15px;
}

.championship p {
    color: #999;
}


/* =========================
   FOOTER
========================= */

footer {
    padding: 30px;

    text-align: center;

    background-color: #08080b;

    color: #777;

    font-size: 13px;
}
/* =========================
   GESTION DES PILOTES
========================= */

.admin {
    padding: 60px 10%;
    min-height: 80vh;
}

.admin-header {
    margin-bottom: 50px;
}

.admin-label {
    color: #ff1e1e;
    font-size: 14px;
    font-weight: bold;
    letter-spacing: 3px;
    margin-bottom: 10px;
}

.admin-header h1 {
    font-size: 45px;
    margin-bottom: 10px;
}

.admin-header p {
    color: #999;
}


/* SECTIONS */

.admin-section {
    margin-bottom: 50px;
}

.admin-section h2 {
    margin-bottom: 25px;
    font-size: 28px;
}


/* FORMULAIRE */

.admin-form {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    padding: 25px;

    background-color: #15151b;
    border: 1px solid #292930;
    border-radius: 8px;
}

.admin-form input {
    padding: 14px;

    background-color: #0b0b0f;
    color: white;

    border: 1px solid #292930;
    border-radius: 5px;

    outline: none;
}

.admin-form input:focus {
    border-color: #ff1e1e;
}

.admin-form button {
    grid-column: span 4;

    padding: 14px;

    background-color: #ff1e1e;
    color: white;

    border: none;
    border-radius: 5px;

    font-weight: bold;
    cursor: pointer;

    transition: 0.3s;
}

.admin-form button:hover {
    background-color: #d41414;
}


/* LISTE DES PILOTES */

.pilotes-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.pilote-admin {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 20px 25px;

    background-color: #15151b;
    border: 1px solid #292930;
    border-radius: 8px;

    transition: 0.3s;
}

.pilote-admin:hover {
    border-color: #ff1e1e;
}

.pilote-admin strong {
    font-size: 18px;
}

.pilote-admin p {
    margin-top: 5px;
    color: #999;
}

.pilote-admin button {
    padding: 10px 18px;

    background-color: transparent;
    color: #ff1e1e;

    border: 1px solid #ff1e1e;
    border-radius: 5px;

    cursor: pointer;
}

.pilote-admin button:hover {
    background-color: #ff1e1e;
    color: white;
}


.empty-message {
    color: #777;
}
/* =========================
   PAGE PUBLIQUE PILOTES
========================= */

.public-pilotes {
    min-height: 80vh;
}


/* HERO */

.pilotes-hero {
    padding: 100px 10% 70px;

    text-align: center;

    background-color: #111116;
}

.section-label {
    color: #ff1e1e;

    font-size: 14px;

    font-weight: bold;

    letter-spacing: 3px;

    margin-bottom: 15px;
}

.pilotes-hero h1 {
    font-size: 55px;

    letter-spacing: 4px;

    margin-bottom: 15px;
}

.pilotes-hero p:last-child {
    color: #999;

    font-size: 18px;
}


/* LISTE */

.pilotes-section {
    padding: 70px 10%;
}

.pilotes-public-list {
    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 20px;
}


/* CARTE */

.pilote-public-card {
    display: flex;

    align-items: center;

    gap: 25px;

    padding: 25px;

    background-color: #15151b;

    border: 1px solid #292930;

    border-radius: 8px;

    transition: 0.3s;
}

.pilote-public-card:hover {
    transform: translateY(-5px);

    border-color: #ff1e1e;
}


/* NUMÉRO */

.pilote-number {
    font-size: 32px;

    font-weight: bold;

    color: #ff1e1e;

    min-width: 70px;
}


/* INFORMATIONS */

.pilote-info {
    flex: 1;
}

.pilote-info h2 {
    font-size: 22px;

    margin-bottom: 6px;
}

.pilote-info p {
    color: #999;
}


/* NATIONALITÉ */

.pilote-nationalite {
    color: #aaa;

    font-size: 14px;
}


/* MOBILE */

@media (max-width: 800px) {

    .pilotes-public-list {
        grid-template-columns: 1fr;
    }

    .pilotes-hero h1 {
        font-size: 40px;
    }

}
/* ==========================================
   CONNEXION ADMIN
========================================== */

.auth-page {
    min-height: calc(100vh - 80px - 80px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    background: #0b0b0f;
}

.auth-box {
    width: 100%;
    max-width: 430px;
    padding: 45px;
    background: #111116;
    border: 1px solid #292930;
    border-radius: 10px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
}

.auth-box .admin-label {
    margin-bottom: 12px;
}

.auth-box h1 {
    font-size: 36px;
    margin-bottom: 10px;
}

.auth-description {
    color: #888;
    font-size: 15px;
    margin-bottom: 35px;
}

.auth-box form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.auth-box label {
    font-size: 13px;
    font-weight: bold;
    color: #ccc;
    margin-top: 8px;
}

.auth-box input {
    width: 100%;
    padding: 14px 15px;
    background: #0b0b0f;
    color: white;
    border: 1px solid #292930;
    border-radius: 5px;
    outline: none;
    font-size: 14px;
    transition: 0.2s;
}

.auth-box input:focus {
    border-color: #ff1e1e;
    box-shadow: 0 0 0 2px rgba(255, 30, 30, 0.08);
}

.auth-box input::placeholder {
    color: #555;
}

.auth-box button {
    width: 100%;
    margin-top: 15px;
    padding: 14px;
    background: #ff1e1e;
    color: white;
    border: none;
    border-radius: 5px;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
    transition: 0.2s;
}

.auth-box button:hover {
    background: #d41414;
    transform: translateY(-1px);
}

.auth-message {
    min-height: 20px;
    margin-top: 15px;
    color: #ff1e1e;
    font-size: 14px;
    text-align: center;
}

.auth-link {
    margin-top: 30px;
    padding-top: 25px;
    border-top: 1px solid #292930;
    text-align: center;
}

.auth-link p {
    color: #777;
    font-size: 13px;
    margin-bottom: 8px;
}

.auth-link a {
    color: #fff;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
    transition: 0.2s;
}

.auth-link a:hover {
    color: #ff1e1e;
}


/* ==========================================
   FOOTER ADMIN
========================================== */

.auth-page + footer {
    padding: 25px;
}


/* ==========================================
   RESPONSIVE
========================================== */

@media (max-width: 600px) {

    header {
        padding: 0 25px;
    }

    header nav {
        display: none;
    }

    .auth-box {
        padding: 30px 25px;
    }

    .auth-box h1 {
        font-size: 30px;
    }

}

/* ==========================================
   AJOUTS VERSION PHP
   (messages, boutons-liens, tableau de bord)
========================================== */

/* Le logo est cliquable */
.logo a {
    color: inherit;
    text-decoration: none;
    font-weight: bold;
    font-size: 22px;
    letter-spacing: 2px;
}

/* Message affiché après une action (ajout, suppression, connexion…) */
.flash {
    margin: 20px 10% 0;
    padding: 14px 20px;
    border-radius: 6px;
    border: 1px solid #1f7a3a;
    background: #10261a;
    color: #9be3b1;
    font-size: 14px;
}

.flash-erreur {
    border-color: #a11b1b;
    background: #2a1010;
    color: #ff8d8d;
}

/* Un lien qui ressemble au bouton rouge du site */
.bouton {
    display: inline-block;
    padding: 15px 30px;
    border: none;
    border-radius: 4px;
    background-color: #ff1e1e;
    color: white;
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
    cursor: pointer;
    transition: 0.3s;
}

.bouton:hover {
    background-color: #d41414;
    transform: scale(1.05);
}

/* Tableau de bord : encart admin connecté */
.admin-welcome {
    margin-bottom: 40px;
    padding: 20px 25px;
    background-color: #15151b;
    border: 1px solid #292930;
    border-radius: 8px;
    display: flex;
    gap: 10px;
    align-items: center;
}

.admin-welcome p {
    color: #999;
}

/* Tableau de bord : statistiques */
.admin-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 50px;
}

.admin-card {
    padding: 25px;
    background-color: #15151b;
    border: 1px solid #292930;
    border-radius: 8px;
}

.admin-card span {
    display: block;
    color: #ff1e1e;
    font-size: 13px;
    font-weight: bold;
    letter-spacing: 2px;
    margin-bottom: 10px;
}

.admin-card strong {
    font-size: 34px;
}

/* Tableau de bord : panneaux */
.admin-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.admin-panel {
    padding: 25px;
    background-color: #15151b;
    border: 1px solid #292930;
    border-radius: 8px;
    transition: 0.3s;
}

.admin-panel:hover {
    border-color: #ff1e1e;
}

.admin-panel h3 {
    margin-bottom: 10px;
}

.admin-panel p {
    color: #999;
    margin-bottom: 20px;
}

.admin-panel button,
.admin-panel .bouton {
    padding: 12px 20px;
    font-size: 14px;
}

.admin-panel button {
    border: none;
    border-radius: 4px;
    background-color: #ff1e1e;
    color: white;
    font-weight: bold;
    cursor: pointer;
}

.admin-panel button[disabled] {
    background-color: #2a2a32;
    color: #777;
    cursor: not-allowed;
}

/* Gestion des pilotes : boutons Modifier / Supprimer */
.pilote-actions {
    display: flex;
    gap: 10px;
    align-items: center;
}

.bouton-secondaire {
    padding: 10px 18px;
    border: 1px solid #555;
    border-radius: 5px;
    color: #ddd;
    text-decoration: none;
    font-size: 14px;
}

.bouton-secondaire:hover {
    border-color: white;
    color: white;
}

.lien-annuler {
    grid-column: span 4;
    text-align: center;
    color: #999;
    font-size: 14px;
}

@media (max-width: 800px) {
    .admin-stats,
    .admin-grid,
    .admin-form {
        grid-template-columns: 1fr;
    }

    .admin-form button,
    .lien-annuler {
        grid-column: span 1;
    }
}


/* ==========================================
   ESPACE STAFF (v3) : onglets, tableaux, badges, MFA
========================================== */

nav a.lien-staff, nav a.lien-admin {
    padding: 6px 14px;
    border: 1px solid #ff1e1e;
    border-radius: 4px;
}

nav a.lien-admin {
    background: #ff1e1e;
}

nav a.lien-admin:hover {
    color: white;
    background: #d41414;
}

.onglets-staff {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 10px 10%;
    background: #0e0e13;
    border-bottom: 1px solid #292930;
}

.onglets-staff a {
    padding: 8px 14px;
    color: #ccc;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
    border-radius: 4px;
}

.onglets-staff a:hover {
    background: #1b1b22;
    color: white;
}

.onglets-staff .onglet-droite {
    margin-left: auto;
    color: #888;
}

.admin-form-2 { grid-template-columns: 2fr 1fr; }
.admin-form-2 button { grid-column: span 2; }
.admin-form-3 { grid-template-columns: repeat(3, 1fr); }
.admin-form-3 button { grid-column: span 3; }

.admin-form select {
    padding: 14px;
    background-color: #0b0b0f;
    color: white;
    border: 1px solid #292930;
    border-radius: 5px;
}

.admin-form-roles { grid-template-columns: 1fr 1fr 2fr; }
.admin-form-roles .droits, .admin-form-roles button, .admin-form-roles .lien-annuler { grid-column: span 3; }

fieldset.droits {
    border: 1px solid #292930;
    border-radius: 5px;
    padding: 15px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

fieldset.droits legend { color: #999; padding: 0 6px; }
label.case { color: #ddd; font-size: 14px; }
label.case input { margin-right: 6px; }

.admin-form-mfa {
    display: block;
}

.admin-form-mfa .ligne {
    display: flex;
    gap: 10px;
    margin-top: 15px;
}

.admin-form-mfa .ligne input { flex: 1; }
.admin-form-mfa .ligne button { padding: 14px 24px; }

.aide { color: #999; font-size: 14px; line-height: 1.5; margin: 6px 0; }
.aide code, .auth-box code { color: #ffb3b3; word-break: break-all; }

.qr {
    width: 180px;
    height: 180px;
    padding: 10px;
    margin: 15px 0;
    background: white;
    border-radius: 6px;
    box-sizing: content-box;
}

.auth-box-large { max-width: 560px; }
.auth-etape { font-size: 16px; color: #ff1e1e; margin-top: 25px; }

.tableau { overflow-x: auto; }

table {
    width: 100%;
    border-collapse: collapse;
    background: #15151b;
    border: 1px solid #292930;
    border-radius: 8px;
    font-size: 14px;
}

th, td {
    padding: 12px 14px;
    text-align: left;
    border-bottom: 1px solid #292930;
    vertical-align: top;
}

th { color: #ff1e1e; font-size: 12px; letter-spacing: 2px; }
td small { color: #999; }
td code { color: #ffb3b3; font-size: 13px; }
tr.ligne-alerte td code { color: #ff5a5a; }

td.actions { display: flex; flex-wrap: wrap; gap: 6px; }
td.actions form { display: inline-flex; gap: 6px; }

td.actions button, td.actions .bouton-secondaire {
    padding: 7px 12px;
    font-size: 13px;
    background: transparent;
    color: #ddd;
    border: 1px solid #555;
    border-radius: 5px;
    cursor: pointer;
}

td.actions button:hover { border-color: white; color: white; }
td.actions .btn-rouge { color: #ff5a5a; border-color: #ff5a5a; }
td.actions .btn-vert { color: #6fdc8c; border-color: #6fdc8c; }

td.actions select {
    padding: 6px;
    background: #0b0b0f;
    color: white;
    border: 1px solid #555;
    border-radius: 5px;
}

.badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: bold;
}

.badge-vert  { background: #10261a; color: #9be3b1; }
.badge-rouge { background: #2a1010; color: #ff8d8d; }
.badge-bleu  { background: #101a2a; color: #8db8ff; }
.badge-gris  { background: #222;    color: #999; }

.pagination { margin-top: 20px; color: #999; display: flex; gap: 20px; }
.pagination a { color: white; }

@media (max-width: 800px) {
    .admin-form-2, .admin-form-3, .admin-form-roles, fieldset.droits { grid-template-columns: 1fr; }
    .admin-form-2 button, .admin-form-3 button, .admin-form-roles .droits, .admin-form-roles button { grid-column: span 1; }
    .onglets-staff { padding: 10px 16px; }
    .onglets-staff .onglet-droite { margin-left: 0; }
}

.lien-form { display: inline; }
button.lien {
    background: none;
    border: none;
    color: #fff;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
    padding: 0;
    margin: 0;
    width: auto;
}
button.lien:hover { color: #ff1e1e; transform: none; }
