/* ============ Pages communauté ============ */
.role-tabs-scroll { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; }
.role-tabs-scroll::-webkit-scrollbar { display: none; }
.role-tabs-scroll .role-tab { white-space: nowrap; flex: none; }
.texte p { margin: 0 0 12px; }
.texte p:last-child { margin-bottom: 0; }
.texte ul { margin: 0 0 12px; padding-left: 20px; }
.texte b { color: var(--cream); }
.pub { margin-bottom: 22px; border-radius: 12px; border: 1px dashed rgba(214,171,74,.5); background: rgba(214,171,74,.05); }
.pub summary { cursor: pointer; padding: 14px 18px; font: 700 15px Montserrat, sans-serif; color: var(--gold-light); list-style: none; }
.pub summary::-webkit-details-marker { display: none; }
.pub .apply { margin: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0 0 12px 12px; box-shadow: none; }
.apply select { width: 100%; padding: 12px 14px; border-radius: 9px; font: 400 15px Inter, sans-serif; background: rgba(6,14,32,.7); border: 1px solid rgba(159,176,207,.25); color: var(--text); }
.apply .grid2 .check { align-self: end; margin: 0 0 12px; }
.apply label small { font-weight: 400; color: var(--muted); }
.av.xl { width: 72px; height: 72px; font-size: 26px; }
.av.xxl { width: 96px; height: 96px; font-size: 36px; border: 3px solid var(--gold); }

/* métiers */
.mt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 18px; }
.mt-carte { padding: 22px; border-radius: var(--radius); background: var(--card); border: 1px solid var(--line); }
.mt-carte.illegal { border-color: rgba(220,90,96,.35); }
.mt-tete { display: flex; gap: 14px; align-items: center; margin-bottom: 10px; }
.mt-emo { width: 48px; height: 48px; flex: none; display: grid; place-items: center; font-size: 24px; border-radius: 12px; background: rgba(214,171,74,.1); border: 1px solid var(--line); }
.mt-tete h3 { color: var(--cream); font-size: 19px; }
.mt-tete small { color: var(--gold); font-size: 12px; text-transform: uppercase; letter-spacing: .1em; }
.mt-carte > p { color: var(--muted); margin: 0 0 14px; font-size: 15px; }
.mt-chiffres { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 6px; }
.mt-chiffres div { padding: 10px; border-radius: 10px; background: rgba(6,14,32,.5); text-align: center; }
.mt-chiffres b { display: block; color: var(--gold-light); font: 800 20px Montserrat, sans-serif; }
.mt-chiffres small { color: var(--muted); font-size: 12px; }
.mt-carte h4, .org h4 { margin: 16px 0 8px; color: var(--cream); font: 700 13px Montserrat, sans-serif; text-transform: uppercase; letter-spacing: .1em; }
.mt-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.mt-chips span { padding: 5px 10px; border-radius: 99px; font-size: 13px; background: rgba(15,35,80,.8); border: 1px solid var(--line); color: var(--text); }
.mt-carte ul { margin: 0; padding-left: 18px; color: var(--text); font-size: 14px; display: grid; gap: 4px; }

/* organisations */
.org-grid { display: grid; gap: 22px; }
.org { border-radius: 18px; overflow: hidden; background: var(--card); border: 1px solid var(--line); scroll-margin-top: 100px; }
.org-bande { display: flex; gap: 16px; align-items: center; padding: 22px 26px; background: linear-gradient(120deg, var(--c), color-mix(in srgb, var(--c) 40%, var(--navy-900))); }
.org-bande span { font-size: 40px; }
.org-bande h3 { color: #fff; font-size: 24px; }
.org-bande em { color: rgba(255,255,255,.8); font-size: 14px; }
.org-corps { padding: 22px 26px; }
.org-corps > p { color: var(--text); margin: 0; }
.org-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.org-grades { margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; counter-reset: g; }
.org-grades li { counter-increment: g; display: flex; gap: 10px; align-items: center; padding: 7px 12px; border-radius: 8px; background: rgba(6,14,32,.45); color: var(--text); font-size: 14px; }
.org-grades li::before { content: counter(g); width: 22px; height: 22px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--c); color: #fff; font: 800 11px Montserrat, sans-serif; }
.org-rec { color: var(--muted); font-size: 14px; margin: 0 0 12px; }

/* équipe */
.eq-groupe { margin-bottom: 36px; }
.eq-groupe h2 { color: var(--c); font-size: 26px !important; }
.eq-groupe > p { color: var(--muted); margin: 6px 0 0; }
.eq-membres { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px; margin-top: 16px; }
.eq-membre { display: grid; justify-items: center; gap: 6px; padding: 22px 12px; border-radius: 14px; text-align: center; background: var(--card); border: 1px solid var(--line); border-top: 3px solid var(--c); }
.eq-membre b { color: var(--cream); overflow-wrap: anywhere; }
.eq-membre small { color: var(--muted); font-size: 12px; }

/* profil */
.pf-cherche { display: flex; gap: 10px; margin-bottom: 14px; }
.pf-cherche input { flex: 1; padding: 11px 14px; border-radius: 10px; background: rgba(6,14,32,.7); border: 1px solid var(--line); color: var(--text); font: 15px Inter, sans-serif; }
.pf-res { display: grid; gap: 6px; margin-bottom: 18px; }
.pf-res a { display: flex; justify-content: space-between; padding: 10px 14px; border-radius: 9px; background: var(--card); border: 1px solid var(--line); color: var(--cream); text-decoration: none; }
.pf-res a small { color: var(--muted); }
.pf { padding: 28px; border-radius: 18px; background: var(--card); border: 1px solid rgba(214,171,74,.4); }
.pf-tete { display: flex; gap: 20px; align-items: center; }
.pf-tete h2 { color: var(--cream); font-size: 28px !important; }
.pf-etat { color: var(--muted); font-size: 14px; }
.pf-etat.on { color: #6fdc95; }
.pf-etat.on::before { content: "● "; }
.pf-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 24px 0 10px; }
.pf-stats div { padding: 14px 8px; border-radius: 12px; text-align: center; background: rgba(6,14,32,.5); }
.pf-stats b { display: block; color: var(--gold-light); font: 800 19px Montserrat, sans-serif; }
.pf-stats small { color: var(--muted); font-size: 12px; }
.pf-depuis { color: var(--muted); text-align: center; margin: 6px 0 0; }
.pf-badges { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.pf-badge { display: grid; justify-items: center; gap: 3px; padding: 16px 10px; border-radius: 12px; text-align: center; background: rgba(214,171,74,.08); border: 1px solid rgba(214,171,74,.3); }
.pf-badge span { font-size: 30px; }
.pf-badge b { color: var(--cream); font-size: 14px; }
.pf-badge small { color: var(--muted); font-size: 12px; }

/* actualités */
.actu { padding: 24px; margin-bottom: 16px; border-radius: var(--radius); background: var(--card); border: 1px solid var(--line); scroll-margin-top: 100px; }
.actu.vise { border-color: var(--gold); box-shadow: 0 0 30px -10px rgba(214,171,74,.6); }
.actu-h { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.actu-h small { color: var(--muted); }
.actu-cat { padding: 4px 10px; border-radius: 99px; font: 700 12px Montserrat, sans-serif; }
.a-annonce { background: rgba(214,171,74,.18); color: var(--gold-light); }
.a-patch { background: rgba(52,152,219,.2); color: #7cc4f5; }
.a-event { background: rgba(192,57,43,.25); color: #ff9b91; }
.actu h2 { color: var(--cream); font-size: 22px !important; margin-bottom: 10px; }
.actu .texte { color: var(--text); }
.actu-del { margin-left: auto; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--line); background: none; color: var(--muted); cursor: pointer; }
.actu-del:hover { color: #ff8a8f; border-color: #ff8a8f; }

/* la Gazette : style journal papier */
.gz-journal { max-width: 1000px; margin: 0 auto; padding: 30px; border-radius: 6px; background: #f4efe3; color: #2a2620; box-shadow: 0 30px 60px -20px rgba(0,0,0,.7); }
.gz-une { text-align: center; padding-bottom: 14px; margin-bottom: 22px; border-bottom: 3px double #2a2620; }
.gz-une h2 { font: 900 clamp(34px, 6vw, 60px)/1 "Playfair Display", Georgia, serif; color: #1c1a16; margin: 8px 0; letter-spacing: -.01em; }
.gz-une small { text-transform: uppercase; letter-spacing: .2em; font-size: 11px; color: #6b6253; }
.gz-art { padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid #cfc6b2; scroll-margin-top: 100px; }
.gz-rub { font: 700 11px Montserrat, sans-serif; text-transform: uppercase; letter-spacing: .15em; color: #a3271c; }
.gz-art h2 { font: 700 24px/1.2 "Playfair Display", Georgia, serif; color: #1c1a16; margin: 6px 0 8px; }
.gz-art.une h2 { font-size: clamp(28px, 4vw, 40px); }
.gz-chapo { font: italic 17px/1.5 Georgia, serif; color: #3b352c; margin: 0 0 10px; }
.gz-suite { font: 16px/1.7 Georgia, serif; color: #2a2620; column-gap: 28px; }
.gz-art.une .gz-suite { columns: 2 280px; }
.gz-suite b { color: #000; }
.gz-pied { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.gz-pied small { color: #6b6253; }
.gz-pied button { margin-left: 8px; padding: 6px 12px; border-radius: 4px; border: 1px solid #2a2620; background: none; color: #2a2620; cursor: pointer; font: 600 13px Inter, sans-serif; }
.gz-pied .gz-retirer { border-color: #a3271c; color: #a3271c; }
.gz-colonnes { columns: 2 300px; column-gap: 30px; column-rule: 1px solid #cfc6b2; }
.gz-colonnes .gz-art { break-inside: avoid; }
.gz-journal .pub { border-color: #a3271c; background: rgba(163,39,28,.05); }
.gz-journal .pub summary { color: #a3271c; }
.gz-vide { color: #6b6253 !important; }

/* événements */
.ev-carte { display: grid; grid-template-columns: 76px 1fr; gap: 18px; padding: 22px; margin-bottom: 14px; border-radius: var(--radius); background: var(--card); border: 1px solid var(--line); scroll-margin-top: 100px; }
.ev-carte.fini { opacity: .55; }
.ev-date { height: 82px; display: grid; place-items: center; align-content: center; border-radius: 12px; background: linear-gradient(180deg, #c0392b, #8e2a20); color: #fff; }
.ev-date b { font: 900 30px/1 Montserrat, sans-serif; }
.ev-date span { font: 700 12px Montserrat, sans-serif; text-transform: uppercase; letter-spacing: .1em; }
.ev-corps h2 { color: var(--cream); font-size: 21px !important; }
.ev-infos { color: var(--gold-light); font-size: 14px; margin: 6px 0 12px; }
.ev-corps .texte { color: var(--text); font-size: 15px; }
.ev-bas { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 14px; }
.ev-bas > span { color: var(--muted); font-size: 14px; flex: 1; }

/* suggestions */
.sg { display: grid; grid-template-columns: 54px 1fr; gap: 16px; padding: 18px; margin-bottom: 12px; border-radius: var(--radius); background: var(--card); border: 1px solid var(--line); scroll-margin-top: 100px; }
.sg-vote { display: grid; justify-items: center; align-content: start; gap: 2px; }
.sg-vote button { width: 36px; height: 30px; border-radius: 8px; border: 1px solid var(--line); background: rgba(6,14,32,.5); color: var(--muted); cursor: pointer; font-size: 13px; }
.sg-vote button.on[data-v="1"] { background: #2f8f55; color: #fff; border-color: #2f8f55; }
.sg-vote button.on[data-v="-1"] { background: #b8343a; color: #fff; border-color: #b8343a; }
.sg-vote b { color: var(--cream); font: 800 18px Montserrat, sans-serif; }
.sg-h { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; margin-bottom: 6px; }
.sg-h h3 { color: var(--cream); font-size: 17px; }
.sg-corps .texte { color: var(--text); font-size: 15px; margin-bottom: 6px; }
.sg-corps > small { color: var(--muted); font-size: 12.5px; }
.sg-nouvelle { background: rgba(159,176,207,.15); color: var(--muted); }
.sg-acceptee { background: rgba(59,165,93,.2); color: #6fdc95; }
.sg-en_cours { background: rgba(52,152,219,.2); color: #7cc4f5; }
.sg-faite { background: rgba(214,171,74,.2); color: var(--gold-light); }
.sg-refusee { background: rgba(237,66,69,.2); color: #ff8a8f; }
.sg-rep { margin-top: 12px; padding: 12px 14px; border-radius: 10px; border-left: 3px solid var(--gold); background: rgba(214,171,74,.07); }
.sg-rep b { color: var(--gold-light); font-size: 13px; }
.sg-rep p { margin: 4px 0 0; color: var(--text); font-size: 14px; }
.sg-staff { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line); }
.sg-staff select, .sg-staff input { padding: 8px 10px; border-radius: 8px; background: var(--navy-950); color: var(--text); border: 1px solid var(--line); font: 14px Inter, sans-serif; }
.sg-staff input { flex: 1; min-width: 160px; }

@media (max-width: 700px) {
  .org-cols { grid-template-columns: 1fr; }
  .pf-stats { grid-template-columns: 1fr 1fr; }
  .pf-tete { flex-direction: column; text-align: center; }
  .gz-journal { padding: 18px 14px; }
  .ev-carte { grid-template-columns: 1fr; }
  .ev-date { height: auto; padding: 8px; grid-auto-flow: column; gap: 8px; justify-content: start; }
  .mt-grid { grid-template-columns: 1fr; }
}
