/* ── ew-parrain — parrainage : formulaire d'invitation + liste des filleuls ── */
.ewp { font-size: .92rem; color: var(--t1, #1a1a18); }
.ewp-form { border: 1px dashed var(--accent-line, rgba(38,105,204,.4)); background: rgba(38,105,204,.04); border-radius: 14px; padding: 14px 16px; }
.ewp-form label { display:block; font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color: var(--t2, #54627A); margin: 8px 0 3px; }
.ewp-form label:first-child { margin-top: 0; }
.ewp-form select, .ewp-form input, .ewp-form textarea { width:100%; border:1px solid var(--border, #e3e3de); border-radius: 9px; padding: 8px 10px; font: inherit; font-size:.9rem; background:#fff; color: inherit; }
.ewp-form textarea { min-height: 64px; resize: vertical; }
.ewp-hint { font-size:.8rem; color: var(--t3, #606C80); margin-top: 8px; }
.ewp-indep-note { margin-top: 8px; font-size:.84rem; border-left: 3px solid var(--warning, #975C13); background: rgba(151,92,19,.08); padding: 8px 10px; border-radius: 8px; }
.ewp-indep-note[hidden] { display:none; }
.ewp-actions { display:flex; gap:8px; margin-top: 12px; }
.ewp-btn { border:0; border-radius: 9px; padding: 8px 13px; font-size:.86rem; font-weight:700; cursor:pointer; background: rgba(38,105,204,.1); color: var(--accent-deep, #1855BD); transition: transform .12s, background .12s; }
.ewp-btn:hover { transform: translateY(-1px); background: rgba(38,105,204,.16); }
.ewp-btn.pri { background: var(--accent-deep, #1855BD); color:#fff; }
.ewp-btn.pri:hover { background: var(--accent, #2669CC); }
.ewp-btn.ghost { background: transparent; color: var(--t3, #606C80); font-weight:600; }
.ewp-btn:disabled { opacity:.55; cursor: default; transform:none; }
.ewp-err { color: var(--danger, #C8291D); font-size:.85rem; margin-top: 8px; }
.ewp-err[hidden], .ewp-lien[hidden] { display:none; }
.ewp-lien { margin-top: 8px; font-size:.84rem; background: rgba(151,92,19,.08); border-left: 3px solid var(--warning, #975C13); padding: 8px 10px; border-radius: 8px; }
.ewp-lien code { display:block; margin-top: 4px; word-break: break-all; font-size:.78rem; color: var(--t2, #54627A); }
.ewp-titre { display:flex; align-items:center; gap:8px; font-weight:800; font-size:.95rem; margin: 18px 0 8px; }
.ewp-n { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px; border-radius:10px; background: rgba(38,105,204,.12); color: var(--accent-deep, #1855BD); font-size:.74rem; font-weight:800; }
.ewp-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; border:1px solid var(--border, #e3e3de); border-radius: 11px; padding: 10px 12px; margin: 6px 0; background: var(--bs-body-bg, #fff); }
.ewp-row.is-accepte { border-left: 4px solid var(--success, #27764A); }
.ewp-row.is-envoye  { border-left: 4px solid var(--warning, #975C13); }
.ewp-row.is-revoque, .ewp-row.is-expire { border-left: 4px solid var(--t3, #606C80); opacity: .75; }
.ewp-main { flex: 1 1 240px; min-width: 0; }
.ewp-type { display:inline-block; margin-left: 8px; padding: 1px 8px; border-radius: 20px; font-size:.72rem; font-weight:700; background: rgba(38,105,204,.1); color: var(--accent-deep, #1855BD); }
.ewp-indep { margin-left: 6px; color: var(--warning, #975C13); }
.ewp-meta { font-size:.8rem; color: var(--t3, #606C80); margin-top: 2px; }
.ewp-badge { padding: 1px 9px; border-radius: 20px; font-size:.74rem; font-weight:700; border: 1px solid currentColor; white-space: nowrap; }
.ewp-badge.envoye { color: var(--warning, #975C13); }
.ewp-badge.accepte { color: var(--success, #27764A); }
.ewp-badge.revoque, .ewp-badge.expire { color: var(--t3, #606C80); }
.ewp-empty { color: var(--t3, #606C80); font-size:.86rem; padding: 8px 0; }

.ewp-modal-back { position: fixed; inset: 0; background: rgba(7,16,34,.55); z-index: 99980; display:flex; align-items:flex-start; justify-content:center; padding: 40px 12px; overflow:auto; }
.ewp-modal { width: min(720px, 100%); background:#fff; border-radius: 16px; box-shadow: 0 30px 80px -20px rgba(7,16,34,.5); padding: 18px 20px 16px; }
.ewp-modal-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom: 10px; }
.ewp-modal-head h3 { margin:0; font-size:1.1rem; font-weight:800; letter-spacing:-.01em; display:flex; align-items:center; gap:8px; }
.ewp-modal-head h3 i { color: var(--accent-deep, #1855BD); }
@media (max-width: 640px) { .ewp-modal-back { padding: 10px; } }
