:root {
    --fond: #f4f6f9;
    --carte: #ffffff;
    --bordure: #dde3ea;
    --texte: #24303d;
    --texte-doux: #62707e;
    --accent: #3a6ea5;
    --accent-doux: #eaf1f9;
    --succes: #2f8f5b;
    --danger: #c0392b;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: 'Nunito', system-ui, sans-serif;
    background: var(--fond);
    color: var(--texte);
}

.site-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 24px;
    background: var(--carte);
    border-bottom: 1px solid var(--bordure);
}

.site-logo {
    display: block;
    text-align: center;
    font-family: 'Fredoka', sans-serif;
    font-size: 1.6em;
    text-decoration: none;
    color: var(--texte);
    margin: 24px 0 10px;
}

.site-logo span { color: var(--accent); }

.site-conteneur {
    max-width: 760px;
    margin: 0 auto;
    padding: 0 16px 60px;
}

.site-carte {
    background: var(--carte);
    border: 1px solid var(--bordure);
    border-radius: 14px;
    padding: 24px;
    margin-bottom: 20px;
}

.site-sous-titre { color: var(--texte-doux); }

.site-btn {
    display: inline-block;
    border: none;
    border-radius: 10px;
    padding: 10px 18px;
    font-size: 1em;
    font-family: inherit;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
}

.site-btn-primaire { background: var(--accent); color: #fff; }
.site-btn-primaire:hover { background: #2f5a86; }

.site-btn-secondaire { background: var(--accent-doux); color: var(--accent); }
.site-btn-secondaire:hover { background: #dbe8f5; }

.site-btn-texte { background: none; color: var(--texte-doux); padding: 6px 10px; }
.site-btn-texte:hover { color: var(--texte); }

.site-champ {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--bordure);
    border-radius: 8px;
    font-family: inherit;
    font-size: 1em;
    margin-bottom: 12px;
}

textarea.site-champ { resize: vertical; min-height: 90px; }

.entree {
    border: 1px solid var(--bordure);
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 14px;
}

.entree-entete {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 8px;
}

.entree-date { font-weight: 700; }

.entree-texte { white-space: pre-wrap; line-height: 1.5; }

.entree-commentaire {
    margin-top: 12px;
    padding: 10px 12px;
    background: var(--accent-doux);
    border-radius: 8px;
}

.entree-commentaire-titre {
    font-size: 0.85em;
    font-weight: 700;
    color: var(--accent);
    margin-bottom: 4px;
}

.eleve-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    border: 1px solid var(--bordure);
    border-radius: 10px;
    margin-bottom: 10px;
    text-decoration: none;
    color: var(--texte);
}

.eleve-item:hover { border-color: var(--accent); }

.messages-erreur {
    color: var(--danger);
    margin-bottom: 12px;
    min-height: 1.2em;
}

.lien-retour {
    display: inline-block;
    margin-bottom: 16px;
    color: var(--texte-doux);
    text-decoration: none;
}

.lien-retour:hover { color: var(--accent); }
