/* bk-lot-e.css — lot E (membres, connexion, comptes, clubs) : compléments au socle bivouak-ui.css */

/* ---------- Cartes membre (liste des bivouakers, membres d'un club, recherche Ajax) ---------- */
.bk-le-member{ align-items:center; text-align:center; padding:20px 14px 16px; gap:8px }
.bk-le-member .bk-av{ position:relative; margin:0 auto 2px; background:var(--bk-accent-soft); color:var(--bk-accent-ink) }
.bk-le-member .bk-av img{ position:absolute; inset:0 }
.bk-le-member h3{ font-size:16px; margin:0; overflow-wrap:anywhere }
.bk-le-member h3 a{ color:var(--bk-ink) } .bk-le-member h3 a:hover{ color:var(--bk-accent-ink) }
.bk-le-member__meta{ font-size:13px; color:var(--bk-ink-3); margin:0; min-height:1.4em }
.bk-le-member .bk-btn{ margin-top:4px }
.bk-le-member__role{ position:absolute; top:10px; right:10px }

/* Le résultat de la recherche Ajax (ajax/form.php?req=searchMembre) arrive sous la forme
   <div class="list-members"><p class="alert">…</p><div class="row">cartes</div></div> */
#search_list_result .list-members{ display:grid; gap:12px }
#search_list_result .list-members > .row{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px; margin:0 }
#search_list_result .list-members > .row::before,#search_list_result .list-members > .row::after{ display:none }
#search_list_result .list-members > .alert{ margin:0 }
@media (max-width:600px){ #search_list_result .list-members > .row{ grid-template-columns:repeat(2,1fr) } }
#search_list_result:empty{ display:none }
#pages{ margin-top:24px }

/* ---------- Connexion / formulaires de compte ---------- */
.bk-le-auth{ max-width:420px; margin-inline:auto; padding:8px 0 56px }
.bk-le-auth .bk-pagehead{ text-align:left }
.bk-le-card{ background:var(--bk-surface); border:1px solid var(--bk-line); border-radius:var(--bk-r); padding:22px 22px 20px }
@media (max-width:600px){ .bk-le-card{ padding:18px 16px } }
.bk-le-card .bk-form{ max-width:none }
.bk-le-card .bk-form__actions{ border-top:0; padding-top:0; justify-content:stretch }
.bk-le-card .bk-form__actions .bk-btn{ flex:1 }
.bk-le-alt{ text-align:center; color:var(--bk-ink-2); font-size:15px; margin:18px 0 0 }
.bk-le-alt a{ font-weight:600; color:var(--bk-accent-ink) }
.bk-le-forgot{ font-size:14px; justify-self:end; color:var(--bk-accent-ink); font-weight:600; margin-top:-6px }

/* Champ mot de passe + bouton œil (structure lue par ajax/form.js : input > parent > nextElementSibling) */
.bk-le-pwd{ display:flex; align-items:stretch }
.bk-le-pwd > input{ flex:1; min-width:0; border-top-right-radius:0 !important; border-bottom-right-radius:0 !important }
.bk-le-pwd > button,.bk-le-pwd > .bk-le-eye{ flex:none; width:46px; display:grid; place-items:center; border:1px solid var(--bk-line); border-left:0; background:var(--bk-bg); color:var(--bk-ink-2); border-radius:0 var(--bk-r-sm) var(--bk-r-sm) 0; cursor:pointer; padding:0 }
.bk-le-pwd > button:hover,.bk-le-pwd > .bk-le-eye:hover{ color:var(--bk-ink) }
.bk-le-eye i{ padding:12px; cursor:pointer }

/* Les fonctions check*() d'ajax/form.js remplacent la classe du parent par
   « form-group has-error|has-success has-feedback » : on stylise donc .form-group dans .bk-form. */
.bk-form .form-group{ display:grid; gap:6px; margin:0; position:relative }
.bk-form .form-group > label{ margin:0 }
.bk-form .form-group > i.control-label,.bk-form .form-group i.control-label{ font-style:normal; font-size:13px; color:var(--bk-danger); font-weight:400 }
.bk-form .form-group > i.control-label:empty{ display:none }
.bk-form .has-success > i.control-label{ color:var(--bk-ok) }
.bk-form .has-error .form-control{ border-color:var(--bk-danger) }
.bk-form .form-control-feedback{ top:auto; bottom:9px; right:6px; pointer-events:none }
.bk-form .form-group > .form-control-feedback:not(.glyphicon){ display:none }
.bk-le-req{ color:var(--bk-accent-ink); margin-left:2px }

/* Groupes de champs titrés en carte blanche */
.bk-form fieldset.bk-le-set{ background:var(--bk-surface); border:1px solid var(--bk-line); border-radius:var(--bk-r); padding:18px 20px 20px }
.bk-form fieldset.bk-le-set > legend{ float:left; width:100%; margin:0 0 4px }
.bk-form fieldset.bk-le-set > legend + *{ clear:both }
@media (max-width:600px){ .bk-form fieldset.bk-le-set{ padding:14px 14px 16px } }
.bk-le-checks{ display:flex; flex-wrap:wrap; gap:8px 18px }
.bk-le-checks label{ display:inline-flex; align-items:center; gap:6px; font-weight:400; margin:0 }
.bk-le-date{ display:flex; align-items:center; gap:8px }
.bk-le-date > select,.bk-le-date > input{ width:auto !important; flex:1; min-width:0; max-width:120px }
.bk-le-date > span{ color:var(--bk-ink-3) }
.bk-le-legal{ font-size:12px; color:var(--bk-ink-3); text-align:center; margin:0 }
.bk-le-legal a{ color:var(--bk-ink-2); text-decoration:underline }
.bk-le-honeypot{ position:absolute; left:-9999px; top:-9999px; height:0; width:0; overflow:hidden }
.bk-le-hidden{ display:none !important }
.bk-le-msg{ max-width:720px; margin-inline:auto; padding-bottom:56px }

/* ---------- Clubs : liste ---------- */
.bk-le-club .bk-card__body{ gap:8px }
.bk-le-club__head{ display:flex; gap:12px; align-items:center }
.bk-le-club__logo{ width:56px; height:56px; border-radius:12px; flex:none; overflow:hidden; display:grid; place-items:center; background:var(--bk-accent-soft); color:var(--bk-accent-ink); font:700 20px/1 var(--bk-display); position:relative; border:1px solid var(--bk-line) }
.bk-le-club__logo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:var(--bk-surface) }
.bk-le-club__head h3{ font-size:17px; margin:0; overflow-wrap:anywhere }
.bk-le-club__head p{ font-size:13px; color:var(--bk-ink-3); margin:2px 0 0 }
.bk-le-club .bk-card__foot{ justify-content:space-between; flex-wrap:wrap; padding-top:4px }
.bk-le-club__web{ font-size:13px; color:var(--bk-ink-3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100% }
/* searchGroup() (ajax/form.js) bascule #group_list et #search_result en display:table : on rétablit la grille */
#group_list[style*="table"]{ display:grid !important }
#search_result[style*="table"]{ display:block !important }
#search_result{ display:none }
#search_list_result.bk-grid:empty{ display:none }

/* ---------- Clubs : fiche ---------- */
.bk-le-cover{ position:relative; border-radius:var(--bk-r); overflow:hidden; min-height:180px; margin-top:10px;
  background:linear-gradient(160deg,#5a6f84,#2d353c) center/cover no-repeat }
.bk-le-cover__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover }
.bk-le-cover__edit{ position:absolute; top:12px; right:12px; z-index:2 }
.bk-le-crumbs{ padding-top:20px }
.bk-le-clubhead{ display:flex; gap:20px; align-items:flex-start; padding:0 4px 0 20px; position:relative; z-index:2 }
.bk-le-clubhead > .bk-le-club__logo{ width:112px; height:112px; border-radius:20px; border:4px solid var(--bk-surface); box-shadow:var(--bk-shadow); font-size:40px; margin-top:-56px }
.bk-le-clubhead .bk-le-club__logo .bk-btn{ position:absolute; right:4px; bottom:4px; z-index:2 }
.bk-le-clubhead .bk-pagehead{ flex:1; min-width:0; padding-top:12px }
.bk-le-clubhead .bk-pagehead h1 .bk-tag{ vertical-align:middle; font-family:var(--bk-body) }
@media (max-width:700px){
  .bk-le-clubhead{ flex-direction:column; padding:0 4px; gap:0 }
  .bk-le-clubhead > .bk-le-club__logo{ width:84px; height:84px; font-size:30px; margin:-42px 0 0 12px }
  .bk-le-clubhead .bk-pagehead{ padding-top:8px; width:100% }
}
.bk-le-switch{ display:flex; align-items:center; gap:12px; font-weight:600; font-size:15px; margin:0 }
.bk-le-switch + .bk-le-switch{ margin-top:12px }
.bk-le-switch .bootstrap-switch{ flex:none }
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-royal,.bootstrap-switch-royal{ background:var(--bk-accent) !important; color:#1a1a1a !important }
.bk-le-map{ height:260px; border-radius:var(--bk-r-sm); overflow:hidden; padding:0 }
.bk-le-sorties #all_sorties,.bk-le-sorties .row{ margin-left:0; margin-right:0 }
.bk-le-invite{ display:grid; gap:10px }
.bk-le-invite .bk-btn{ width:100% }
.bk-le-ok{ color:var(--bk-ok); font-size:14px; margin:0 } .bk-le-ko{ color:var(--bk-danger); font-size:14px; margin:0 }

/* Pagination compacte du haut (ui/e_pager_compact.html) */
.bk-le-pp{ display:inline-flex; align-items:center; gap:8px; font-size:14px; color:var(--bk-ink-2); margin-left:auto; font-variant-numeric:tabular-nums; white-space:nowrap }
.bk-le-pp b{ color:var(--bk-ink) }
.bk-le-auth .bk-alert{ margin-bottom:16px }
.bk-le-auth .bk-pagehead{ padding-bottom:16px }
.bk-le-alt--note{ font-size:14px; color:var(--bk-ink-3) }
.bk-form .bk-label{ font-weight:600; font-size:14px; color:var(--bk-ink); display:block }
.bk-form .bk-field--inline label{ font-weight:400 }
.bk-form .bk-field--inline .control-label:empty{ display:none }
.bk-le-msg .bk-box > p:last-child{ margin-bottom:0 }
