* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: Tahoma, Arial, sans-serif;
    background-color: #2a2d31;
    background-image: none;
    color: #2b2a26;
}

.zone-module > a, .container > a { color: #7aa6ff; }

/* rose séparateur : sans filtre, image originale */

.titre-nav--anthracite { color: #d8d4ca !important; }
.titre-nav--vert       { color: #6fbf6f !important; }

.page-title { text-shadow: 0 1px 2px rgba(0,0,0,0.6); }

.texte-entete { color: #d8d4ca !important; font-size: 14px !important; }


.container {
    width: 100%;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
}

.en-bloc {
    display: inline-block;
    text-align: center;
    width: 100%;
}

.marge-40 { margin-top: 40px; }
.marge-15 { margin-top: 15px; }
.marge-bas { margin-bottom: 40px; }

.texte-entete {
    text-align: center;
    color: #312f28;
    font-family: Tahoma, Arial, sans-serif;
    font-size: 12px;
    font-style: italic;
}

.page-title {
    color: #5f47b6;
    text-align: center;
    font-style: italic;
    font-family: Tahoma, Arial, sans-serif;
    font-size: 30px;
    margin-top: 0;
    margin-bottom: 18px;
    text-transform: none !important;
}

a {
    text-decoration: none;
    color: #194dd9;
}

a:hover {
    color: #075007;
}

.oratorio-header {
    padding-top: 10px;
}

.nav-site,
.nav-module {
    text-align: center;
}

.nav-site a,
.nav-module a {
    display: inline-block;
    margin: 6px 5px;
}

.bouton {
    cursor: pointer;
    font-size: 14px;
    font-family: Tahoma, Arial, sans-serif;
    border-radius: 50px;
    padding: 10px 18px;
    transition: 0.2s ease;
}

.bouton-generaux {
    background: linear-gradient(58deg, rgba(160,164,159,1) 20%, rgba(123,127,121,1) 61%, rgba(85,87,85,1) 100%);
    border: 3px solid #565454;
    font-style: italic;
    color: #33302c;
    font-weight: bold;
}

.bouton-generaux:hover {
    background: #222222;
    color: #075007;
    border: 2px solid #075007;
}

.bouton-membre {
    background: linear-gradient(58deg, rgba(24,22,22,1) 3%, rgba(93,56,56,1) 66%, rgba(96,38,38,1) 100%);
    border: 4px solid #602b05;
    color: #eace93;
    font-style: italic;
    font-weight: bold;
}

.bouton-membre:hover {
    background: #3fc5bf;
    color: #075007;
    border: 2px solid #075007;
}

.bouton-connexion {
    background-color: #af0909;
    border: 2px solid #af0909;
    color: #a6e3e0;
    font-weight: bold;
}

.bouton-connexion:hover {
    background: #3fc5bf;
    color: #075007;
    border: 2px solid #075007;
}

.bouton-deconnexion {
    background: #722f37;
    border: 2px solid #722f37;
    color: #ffffff;
    font-weight: bold;
}
.bouton-deconnexion:hover {
    background: #4a1d23;
    border-color: #4a1d23;
    color: #ffffff;
}

.bouton-bouteille {
    background: #0c4f3f;
    border: 2px solid #0c4f3f;
    color: #ffffff;
    font-weight: bold;
}
.bouton-bouteille:hover {
    background: #062a21;
    border-color: #062a21;
    color: #ffffff;
}

.bouton-liaison {
    background: #c8d8a4;
    border: 2px solid #97a36b;
    color: #2b2a26;
    font-style: italic;
    font-weight: bold;
}
.bouton-liaison:hover {
    background: #0a2d23;
    border-color: #0a2d23;
    color: #ffffff;
}

.bouton-admin-violet {
    background: #5f47b6;
    border: 2px solid #5f47b6;
    color: #ffffff;
    font-weight: bold;
}
.bouton-admin-violet:hover {
    background: #3a2a78;
    border-color: #3a2a78;
    color: #ffffff;
}

.titre-nav {
    margin: 16px 0 10px;
    text-align: center;
    font-style: italic;
    font-family: Tahoma, Arial, sans-serif;
    font-size: 22px;
    letter-spacing: 0.5px;
    font-weight: bold;
}
.titre-nav:first-child { margin-top: 0; }
.titre-nav--anthracite { color: #2b2a26; }
.titre-nav--vert       { color: #0c4f3f; }

.ligne-nav {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
}

.image-logo {
    text-align: center;
}

.image-logo img {
    max-width: 100%;
    height: auto;
}

.type-image-petit {
    margin-top: 25px;
    text-align: center;
}

.type-image-petit img {
    width: 140px;
    height: auto;
    margin: 0 8px;
    vertical-align: middle;
}

.zone-module {
    padding-bottom: 30px;
}

.page-card,
.form-block,
.bloc-membre,
.bloc-evenement,
.bloc-forum,
.bloc-sujet,
.bloc-reponse,
.bloc-admin {
    background: #ece1bd;
    border: 3px solid #c2b78d;
    border-radius: 14px;
    padding: 18px 22px;
    margin: 0 auto 22px;
    max-width: 880px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

.meta {
    color: #6c8181;
    font-size: 14px;
    font-style: italic;
    margin-bottom: 15px;
}

.notice {
    background: #eef6ff;
    border: 1px solid #bdd7f5;
    color: #184e8a;
    padding: 12px;
    border-radius: 8px;
    margin-bottom: 20px;
}

.error {
    background: #fdecec;
    border: 1px solid #f2b8b8;
    color: #8a1c1c;
    padding: 12px;
    border-radius: 8px;
    margin-bottom: 20px;
}

.actions {
    margin: 18px 0 8px;
}

.actions a:not(.btn-action),
.actions button:not(.btn-action) {
    display: inline-block;
    margin-right: 10px;
    margin-bottom: 10px;
    background: #5f47b6;
    color: #ffffff;
    padding: 10px 16px;
    border: none;
    border-radius: 30px;
    cursor: pointer;
    font-size: 14px;
    font-family: Tahoma, Arial, sans-serif;
    transition: 0.2s ease;
}

.actions a:not(.btn-action):hover,
.actions button:not(.btn-action):hover {
    background: #235756;
    color: #ffffff;
    text-decoration: none;
}

.form-block label {
    display: block;
    font-weight: bold;
    margin-bottom: 6px;
    color: #315050;
}

.form-block input[type="text"],
.form-block input[type="email"],
.form-block input[type="password"],
.form-block input[type="datetime-local"],
.form-block input[type="number"],
.form-block select,
.form-block textarea {
    width: 100%;
    max-width: 100%;
    padding: 10px 12px;
    border: 1px solid #bdb5a8;
    border-radius: 8px;
    margin-bottom: 15px;
    font-size: 14px;
    font-family: Tahoma, Arial, sans-serif;
    background: rgba(255,255,255,0.92);
}

.form-block textarea {
    min-height: 140px;
    resize: vertical;
}

.liste-liens {
    margin: 0;
    padding-left: 20px;
}

.liste-liens li {
    margin-bottom: 10px;
    color: #075007;
}

.bloc-membre h2,
.bloc-evenement h2,
.bloc-forum h2,
.bloc-sujet h2 {
    margin-top: 0;
    color: #5f47b6;
    font-style: italic;
    font-size: 24px;
}

.footer-module {
    padding: 20px 0 30px;
}

@media (max-width: 768px) {
    .container {
        padding-left: 12px;
        padding-right: 12px;
    }

    .page-title {
        font-size: 24px;
    }

    .type-image-petit img {
        width: 90px;
        margin: 0 4px;
    }

    .bouton {
        width: 100%;
        max-width: 320px;
    }

    .nav-site a,
    .nav-module a {
        display: block;
        margin: 8px auto;
    }
}
.bloc-evenement {
    text-align: center;
}

.bloc-evenement p {
    text-align: justify;
}

.bloc-evenement p strong {
    color: #5f47b6;
}

.profil-membre-gauche .page-card,
.profil-membre-gauche .bloc-membre {
    max-width: 760px !important;
    margin: 18px 0 !important;
    text-align: left !important;
}

.profil-membre-gauche .page-title {
    text-align: left !important;
}

.profil-membre-gauche .actions {
    display: flex !important;
    justify-content: flex-start !important;
    gap: 14px;
    flex-wrap: wrap;
    text-align: left !important;
}

.profil-membre-gauche p,
.profil-membre-gauche ul,
.profil-membre-gauche li {
    text-align: left !important;
}

.profil-membre-gauche img {
    display: block;
}

/* ===== Boutons d'action compacts (espace membre) ===== */
.btn-action {
    display: inline-block;
    padding: 6px 14px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 14px;
    font-family: Tahoma, Arial, sans-serif;
    font-weight: 700;
    text-decoration: none;
    line-height: 1.2;
    color: #fff;
    background: #5f47b6;
    cursor: pointer;
    transition: transform 0.1s ease, box-shadow 0.15s ease, filter 0.15s ease;
    box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}
.btn-action, .btn-action:visited { color: #fff !important; }
.btn-action:hover { filter: brightness(1.08); transform: translateY(-1px); box-shadow: 0 3px 6px rgba(0,0,0,0.18); color:#fff !important; }
.btn-action:active { transform: translateY(0); filter: brightness(0.95); }

.btn-action--voir       { background:#3f48ff; border-color:#2c34d1; }
.btn-action--modifier   { background:#b45f06; border-color:#8c4a05; }
.btn-action--supprimer  { background:#a61c1c; border-color:#7d1111; }
.btn-action--ajouter    { background:#0b7a75; border-color:#075c58; }
.btn-action--admin      { background:#5f47b6; border-color:#46348a; }
.btn-action--retour     { background:#6b7280; border-color:#4b5563; }
.btn-action--nouveau    { background:#075007; border-color:#053b05; }
.btn-action--ouvrir     { background:#3f48ff; border-color:#2c34d1; }
.btn-action--repondre   { background:#0b7a75; border-color:#075c58; }
.btn-action--moderation { background:#a61c1c; border-color:#7d1111; }
.btn-action--vote       { background:#8a2be2; border-color:#6a1fb0; }

/* Page Profil : fenêtres claires comme partout ailleurs (texte foncé lisible) */
.page-profil .page-card,
.page-profil .bloc-membre {
    max-width: 880px;
}

/* Cadre type "post" pour mettre en valeur un bloc */
.bloc-post {
    border: 3px solid #c2b78d;
    border-radius: 14px;
    background: #ece1bd;
    padding: 16px 20px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

/* Conteneur centré pour tout média inséré dans un post */
.zone-module .post-media,
.zone-module p[style*="text-align:center"],
.zone-module p[style*="text-align: center"] {
    text-align: center !important;
    display: block !important;
    margin: 12px 0 !important;
}
.zone-module .post-media a,
.zone-module .post-media img,
.zone-module .post-media video,
.zone-module p[style*="text-align:center"] a,
.zone-module p[style*="text-align:center"] img,
.zone-module p[style*="text-align:center"] video {
    display: inline-block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
}

/* Vidéos et iframes : taille bornée à 480 px, centrées via text-align */
.zone-module video,
.zone-module iframe {
    max-width: 480px !important;
    width: auto;
    height: auto !important;
    display: inline-block !important;
    margin: 4px auto;
    border-radius: 10px;
    vertical-align: middle;
}

/* Bouton "Se déconnecter et retour au Site Public" en haut de chaque page */
.bouton-retour-public {
    display: inline-block;
    padding: 12px 28px;
    margin: 6px 0 4px;
    background: #1a4d3a;            /* vert sapin foncé */
    color: #fff !important;
    border: 2px solid #143829;      /* contour plus sombre */
    border-radius: 999px;
    font-family: Tahoma, Arial, sans-serif;
    font-size: 16px;
    font-weight: bold;
    font-style: italic;
    text-decoration: none;
    box-shadow: 0 3px 8px rgba(0,0,0,0.18);
    transition: background 0.18s ease, transform 0.12s ease, box-shadow 0.18s ease;
    cursor: pointer;
}
.bouton-retour-public:hover {
    background: #2d7d5e;            /* vert plus clair au survol */
    border-color: #1a4d3a;
    box-shadow: 0 5px 14px rgba(0,0,0,0.22);
    transform: translateY(-1px);
    text-decoration: none;
}
.bouton-retour-public:active {
    background: #0c2e1f;            /* vert très foncé au clic */
    border-color: #0c2e1f;
    box-shadow: 0 1px 4px rgba(0,0,0,0.25);
    transform: translateY(1px);
}

/* Images insérées dans un post : vignette ~180 px, cliquable, centrée */
.zone-module img:not(.presence-dot):not(.vignette-categorie):not([alt="Photo de profil"]):not([alt="Accueil"]):not([alt="Genre"]):not([alt="Astrologie"]):not([alt="Chinois"]):not([alt="Accueillant"]):not([alt="Non accueillant"]):not([alt="Oratorio Magi Radio"]):not([alt="Pochette en cours"]):not([alt="Vignette catégorie"]) {
    max-width: 180px !important;
    width: auto;
    height: auto !important;
    display: inline-block !important;
    margin: 4px auto;
    border-radius: 10px;
    cursor: zoom-in;
    transition: transform 0.15s ease;
    vertical-align: middle;
}

.zone-module a > img:hover {
    transform: scale(1.03);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

/* Conteneur YouTube centré */
.zone-module div[style*="padding-bottom:56.25%"] {
    max-width: 480px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Conteneur d'embed YouTube (div avec ratio 16:9 via padding-bottom) */
.zone-module div[style*="padding-bottom:56.25%"] {
    max-width: 480px !important;
}
.bloc-post-titre {
    margin: 0 0 8px;
    font-style: italic;
    font-family: Tahoma, Arial, sans-serif;
    font-size: 18px;
    color: #5f47b6;
    text-transform: none;
}

/* Popup au survol des pastilles d'anniversaire du calendrier */
.ev-bday-wrap:hover .ev-bday-popup,
.ev-bday-wrap:focus-within .ev-bday-popup,
.ev-bday-popup:hover { display: block !important; }
.ev-bday-popup:hover {
    transform: translateX(-50%) scale(1.04);
    box-shadow: 0 6px 18px rgba(0,0,0,0.25) !important;
}
/* Pont invisible pour ne pas perdre le survol entre la pastille et le popup */
.ev-bday-popup::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -10px;
    height: 10px;
    background: transparent;
}
/* Augmente la zone de hover de la pastille pour faciliter l'accroche */
.ev-bday-wrap::before {
    content: "";
    position: absolute;
    inset: -6px;
    z-index: -1;
}

/* Layout fiche membre 2 colonnes */
.fiche-membre { display:flex; gap:24px; align-items:center; flex-wrap:wrap; }
.fiche-membre-gauche { flex: 0 0 210px; max-width: 210px; }
.fiche-membre-droite { flex: 1 1 320px; min-width: 0; }

/* ===== Toolbar éditeur WYSIWYG ===== */
.ed-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    border: 1px solid #c9c1ad;
    border-radius: 10px 10px 0 0;
    background: linear-gradient(#fbf9f2, #ece5d2);
    border-bottom: none;
    font-family: Tahoma, Arial, sans-serif;
}
.ed-group {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 2px 4px;
    border-right: 1px solid #c9c1ad;
}
.ed-group:last-of-type { border-right: none; }
.ed-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    height: 30px;
    padding: 0 6px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: #2b2a26;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    transition: background 0.1s ease, border-color 0.1s ease;
}
.ed-btn:hover { background: #fff; border-color: #b8b2a8; }
.ed-btn:active { background: #efe8c8; }
.ed-color-palette {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 50;
    padding: 8px;
    background: #fff;
    border: 1px solid #b8b2a8;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    grid-template-columns: repeat(12, 18px);
    gap: 3px;
}
.ed-color-cell {
    width: 18px;
    height: 18px;
    border: 1px solid rgba(0,0,0,0.15);
    border-radius: 3px;
    cursor: pointer;
    padding: 0;
}
.ed-color-cell:hover {
    transform: scale(1.25);
    border-color: #000;
    z-index: 1;
    position: relative;
}
.ed-size {
    height: 30px;
    padding: 0 6px;
    border: 1px solid #b8b2a8;
    border-radius: 6px;
    background: #fff;
    font-size: 13px;
    cursor: pointer;
}
.ed-emoji-palette {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 50;
    width: 320px;
    max-height: 260px;
    overflow-y: auto;
    flex-wrap: wrap;
    gap: 4px;
    padding: 8px;
    background: #fff;
    border: 1px solid #b8b2a8;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.ed-emoji {
    min-width: 34px;
    height: 32px;
    padding: 0 4px;
    border: 1px solid #d0c39b;
    border-radius: 6px;
    background: #fffdf8;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}
.ed-emoji:hover { background: #fff4cc; }
.ed-editor {
    min-height: 220px;
    border: 1px solid #c9c1ad;
    border-radius: 0 0 10px 10px;
    background: #fffdf8;
    padding: 14px;
    line-height: 1.6;
}
@media (max-width: 600px) {
    .fiche-membre-gauche { flex-basis: 100%; max-width: 100%; }
}
/* === Corrections fond anthracite : texte foncé DANS les fenêtres === */
.bloc-post,
.page-card,
.form-block,
.bloc-membre,
.bloc-evenement,
.bloc-forum,
.bloc-sujet,
.bloc-reponse,
.bloc-admin {
    color: #2b2a26;
}
.bloc-post p, .bloc-post li, .bloc-post span:not([style*='color']),
.page-card p, .page-card li, .page-card span:not([style*='color']),
.bloc-membre p, .bloc-membre li, .bloc-membre span:not([style*='color']),
.bloc-evenement p, .bloc-evenement li, .bloc-evenement span:not([style*='color']),
.bloc-forum p, .bloc-forum li, .bloc-forum span:not([style*='color']),
.bloc-sujet p, .bloc-sujet li, .bloc-sujet span:not([style*='color']),
.bloc-reponse p, .bloc-reponse li, .bloc-reponse span:not([style*='color']),
.bloc-admin p, .bloc-admin li, .bloc-admin span:not([style*='color']) {
    color: #2b2a26;
}

/* Liens DANS les fenêtres : bleu lisible */
.bloc-post a:not(.btn-action):not(.bouton), .page-card a:not(.btn-action):not(.bouton), .form-block a:not(.btn-action):not(.bouton),
.bloc-membre a:not(.btn-action):not(.bouton), .bloc-evenement a:not(.btn-action):not(.bouton),
.bloc-forum a:not(.btn-action):not(.bouton), .bloc-sujet a:not(.btn-action):not(.bouton), .bloc-reponse a:not(.btn-action):not(.bouton),
.bloc-admin a:not(.btn-action):not(.bouton) {
    color: #194dd9;
}
.bloc-post a:not(.btn-action):not(.bouton):hover, .page-card a:not(.btn-action):not(.bouton):hover, .form-block a:not(.btn-action):not(.bouton):hover,
.bloc-membre a:not(.btn-action):not(.bouton):hover, .bloc-evenement a:not(.btn-action):not(.bouton):hover,
.bloc-forum a:not(.btn-action):not(.bouton):hover, .bloc-sujet a:not(.btn-action):not(.bouton):hover, .bloc-reponse a:not(.btn-action):not(.bouton):hover,
.bloc-admin a:not(.btn-action):not(.bouton):hover {
    color: #075007;
}

/* Recoloriser la rose noire en rouge/or visible sur anthracite */
/* rose séparateur : sans filtre, image originale */

/* Rose séparateur : taille doublée */
img[src*="separateur.gif"] {
    max-width: 1200px !important;
    width: 100% !important;
}


/* Liste membres : chaque fiche-membre devient une fenêtre cream */
.fiche-membre {
    background: #ece1bd;
    border: 3px solid #c2b78d;
    border-radius: 14px;
    padding: 18px 22px;
    margin: 0 0 22px;
    color: #2b2a26;
}
/* Sur la page profil, .bloc-membre est déjà la fenêtre — on évite la double */
.bloc-membre .fiche-membre {
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
}

/* Cartes catégories du forum : fenêtre cream */
.bloc-categorie-forum {
    background: #ece1bd;
    border: 3px solid #c2b78d;
    border-radius: 14px;
    padding: 18px 22px;
    color: #2b2a26;
}

/* Forums : forcer texte foncé dans les boites cream inline-stylées */
div[style*="background:#efe8c8"],
div[style*="background: #efe8c8"],
div[style*="background:#fff4cc"],
div[style*="background: #fff4cc"] {
    color: #2b2a26 !important;
}
div[style*="background:#efe8c8"] p,
div[style*="background:#efe8c8"] li,
div[style*="background:#efe8c8"] span:not([style*='color']),
div[style*="background:#fff4cc"] p,
div[style*="background:#fff4cc"] li,
div[style*="background:#fff4cc"] span:not([style*='color']) {
    color: #2b2a26 !important;
}

/* Forum : metadata sur anthracite -> texte clair */
.forum-post-meta,
.forum-post-meta p,
.forum-post-meta strong,
.forum-post-meta span:not([style*='color']) {
    color: #d8d4ca !important;
}
.forum-post-meta a {
    color: #7aa6ff !important;
}

/* Forum : forcer texte foncé partout dans la bulle cream du post (override universel) */
div[style*="background:#efe8c8"] *:not(a):not(.btn-action):not(.bouton) {
    color: #2b2a26 !important;
}

/* === Protection anti-copie === */
body {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
/* Les champs de saisie restent sélectionnables (sinon impossible d'écrire un mot de passe, post forum, etc.) */
input, textarea, select, [contenteditable="true"] {
    -webkit-user-select: text !important;
    -moz-user-select: text !important;
    -ms-user-select: text !important;
    user-select: text !important;
}
