html{overflow-x:hidden}
#svg-sprite{display:none;position:absolute}
/* Socle commun Climbing Logbook : polices, reset, variables de design, conteneur .app. */
@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Nunito:wght@400;600;700;800&family=DM+Mono:wght@500&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--an-h:65px;--ok:#22c55e;--bad:#f87171;--gold-d:#c9920a;--surface2:#f0ecfc;--paper:#f6f3ff;--surface:#fff;--ink:#2a1b4a;--ink2:#6b5b8e;--ink3:#a99cc4;--rule:#ece7f7;--rule2:#ddd4f0;--brand:#7c3aed;--brand-d:#6d28d9;--m-vue:#fbbf24;--m-flash:#fb7185;--m-tete:#818cf8;--m-moulv:#34d399;--m-moult:#22d3ee;--gold:#f5b50a}
html{font-size:16px}
body{background:var(--paper);color:var(--ink);font-family:'Nunito',sans-serif;min-height:100dvh;-webkit-font-smoothing:antialiased}
.app{max-width:480px;margin:0 auto;position:relative}

/* Modale applicative (uiAlert/uiConfirm/uiPrompt) */
      .ui-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(42,27,74,.45);backdrop-filter:blur(3px)}
      .ui-modal.open{display:flex}
      .ui-modal-card{width:100%;max-width:380px;background:#fff;border-radius:18px;padding:20px 18px 16px;box-shadow:0 18px 50px rgba(42,27,74,.32);font-family:'Nunito',-apple-system,Segoe UI,sans-serif;animation:ui-pop .16s ease-out}
      @keyframes ui-pop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
      .ui-modal-title{font-family:'Fredoka','Nunito',sans-serif;font-weight:700;font-size:17px;color:#2a1b4a;margin-bottom:6px}
      .ui-modal-msg{font-size:13.5px;font-weight:600;color:#6b5b8e;line-height:1.45;white-space:pre-line}
      .ui-modal-input{width:100%;margin-top:13px;border:1.5px solid #ddd4f0;border-radius:11px;padding:11px 12px;font-size:14px;font-weight:700;color:#2a1b4a;font-family:inherit}
      .ui-modal-input:focus{outline:none;border-color:#7c3aed}
      .ui-modal-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:18px}
      .ui-btn{border:none;border-radius:11px;padding:11px 17px;font-family:inherit;font-weight:800;font-size:13.5px;cursor:pointer}
      .ui-btn-ghost{background:#f1ecfb;color:#6b5b8e}
      .ui-btn-primary{background:linear-gradient(135deg,#7c3aed,#c026d3);color:#fff}
      .ui-btn-primary.danger{background:linear-gradient(135deg,#e11d48,#b91c1c)}
      .ui-btn:active{transform:scale(.97)}

/* Utilities globales */
.ov-h{overflow:hidden}
.img-fill{width:100%;height:100%;object-fit:cover}
.d-none{display:none}
.flex-1{flex:1}
.flex-1-mw0{flex:1;min-width:0}
.mt-6{margin-top:6px}.mt-8{margin-top:8px}.mt-9{margin-top:9px}
.mt-10{margin-top:10px}.mt-12{margin-top:12px}.mt-26{margin-top:26px}
.mb-9{margin-bottom:9px}.mb-10{margin-bottom:10px}
/* Badges de rôle (admin/index) */
.coul-badge.role-admin{background:#312e81}
.coul-badge.role-coach{background:#0e7490}
.coul-badge.role-member{background:var(--brand)}
.ui-modal-input{display:none}

/* Sélecteur de club inline (hero) */
.csw-form{display:inline-flex;align-items:center}
.csw-select{
  appearance:auto;background:none;border:none;
  border-bottom:2px solid var(--brand);
  color:var(--ink);font-family:'Nunito',sans-serif;
  font-weight:800;font-size:inherit;cursor:pointer;
  padding:1px 2px;max-width:200px;
  outline:none
}
.csw-select:focus{border-bottom-color:var(--brand-d)}
.csw-static{font-weight:800}

/* Hero club : logo + nom ─────────────────────────────────────────────────── */
.hc-row{display:flex;align-items:center;gap:10px}
.hc-logo{
  width:38px;height:38px;border-radius:9px;
  background:rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:14px;color:#fff;
  overflow:hidden;flex-shrink:0;border:1.5px solid rgba(255,255,255,.25)
}
/* Texte blanc pour le sélecteur dans le hero (fond violet) */
.hero .csw-select{color:#fff;background:none}
.hero .csw-select option{color:var(--ink);background:#fff}
.hero .csw-static{color:#fff}
/* Rétablir couleur sombre hors hero (si utilisé ailleurs) */
.csw-select{color:var(--ink)}
.csw-static{color:var(--ink)}

/* Structure commune des heroes ─────────────────────────────────────────── */
.hero{margin-bottom:16px}
.hero-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:8px;min-width:0}
.hero-sub{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  opacity:.75;margin-bottom:10px}
.hero-av{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.2);
  border:2px solid rgba(255,255,255,.35);overflow:hidden;display:flex;
  align-items:center;justify-content:center;font-weight:800;font-size:13px;
  color:#fff;flex-shrink:0}
.hero-av img{width:100%;height:100%;object-fit:cover}
.hero-right{display:flex;flex-direction:row-reverse;align-items:center;gap:8px;flex-shrink:0}

/* Composants globaux ─────────────────────────────────────────────────── */
.flash{border-radius:10px;padding:9px 12px;font-weight:800;font-size:12.5px;margin-bottom:12px}
.flash.error{background:#fee2e2;color:#991b1b}
.flash.success{background:#dcfce7;color:#166534}
.flash.info{background:#e0f2fe;color:#075985}
.flash.warning{background:#fef9c3;color:#854d0e}
.hero-links{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.hero-links a{font-size:11.5px;font-weight:800;text-decoration:none;color:#fff;background:rgba(255,255,255,.18);padding:6px 11px;border-radius:16px}

.home-logo{width:72px;height:72px;border-radius:50%;margin-bottom:8px;display:block;margin-left:auto;margin-right:auto}
/* Icônes SVG dans les pages */
.sh-ico{width:18px;height:18px;vertical-align:middle;flex-shrink:0;color:inherit}
.sh svg.sh-ico,.sh .sh-ico{margin-right:4px}

/* Toast badge */
.bdg-toast{position:fixed;bottom:calc(var(--an-h,65px) + 12px);left:50%;transform:translateX(-50%) translateY(20px);width:min(340px,90vw);background:#fff;border-radius:16px;box-shadow:0 8px 32px rgba(42,27,74,.22);padding:12px 14px;display:flex;align-items:center;gap:12px;z-index:9000;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none}
.bdg-toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}
.bdg-toast-icon{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#7c3aed,#c026d3);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}
.bdg-toast-title{font-size:10px;font-weight:700;color:var(--ink3);text-transform:uppercase;letter-spacing:.06em}
.bdg-toast-name{font-size:14px;font-weight:800;color:var(--brand)}
.bdg-toast-desc{font-size:11px;color:var(--ink2);margin-top:2px}
.bdg-toast-link:hover{background:#f5f3ff}
.bdg-toast-arrow{font-size:22px;color:var(--brand);font-weight:300;margin-left:4px;flex-shrink:0}
