/* ═══════════════════════════════════════════════════════════════
   INFOGRAPHIES MODULE — module.css
   Couleur accent via :root { --ifg-a:#xxx; --ifg-al:rgba(...,.08); --ifg-ab:rgba(...,.2); }
═══════════════════════════════════════════════════════════════ */
:root{--ifg-a:#b8713a;--ifg-al:rgba(184,113,58,.08);--ifg-ab:rgba(184,113,58,.2);}

/* ── Section ── */
.ifg-section{max-width:860px;margin:0 auto;padding:44px 20px 8px}
.ifg-hd{margin-bottom:20px}
.ifg-title{font-family:'Fraunces',Georgia,serif;font-size:clamp(20px,4vw,27px);font-weight:700;color:#1a1714;margin-bottom:5px;line-height:1.2}
.ifg-sub{font-size:13.5px;color:#6b6258;line-height:1.6}
hr.ifg-divider{border:none;border-top:1px solid rgba(0,0,0,.09);max-width:860px;margin:44px auto 0}

/* ── Edition bar ── */
.ifg-edit-bar{display:none;background:#fff;border:1.5px solid rgba(22,163,74,.25);border-radius:13px;padding:11px 15px;margin-bottom:15px;align-items:center;gap:11px;flex-wrap:wrap}
.ifg-edit-bar.show{display:flex}
.ifg-edit-lbl{font-size:13px;font-weight:700;color:#16a34a}
.ifg-btn-add{padding:7px 15px;border-radius:20px;border:1.5px solid var(--ifg-ab);background:var(--ifg-al);color:var(--ifg-a);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}
.ifg-btn-add:hover{background:var(--ifg-a);color:#fff;border-color:var(--ifg-a)}
.ifg-btn-save{margin-left:auto;padding:7px 18px;border-radius:20px;border:none;background:#16a34a;color:#fff;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}
.ifg-btn-save:hover{background:#15803d}
.ifg-btn-save:disabled{opacity:.5;cursor:not-allowed}
.ifg-save-msg{font-size:12px;font-weight:700}
.ifg-save-msg.ok{color:#16a34a}.ifg-save-msg.err{color:#dc2626}

/* ── Grille cartes ── */
.ifg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
@media(max-width:500px){.ifg-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:320px){.ifg-grid{grid-template-columns:1fr}}
.ifg-card{background:#fff;border:1px solid rgba(0,0,0,.09);border-radius:13px;overflow:hidden;cursor:pointer;transition:all .2s;position:relative}
.ifg-card:hover{border-color:var(--ifg-ab);transform:translateY(-2px);box-shadow:0 5px 18px var(--ifg-al)}
.ifg-thumb{width:100%;height:140px;background:var(--ifg-al);display:flex;align-items:center;justify-content:center;font-size:38px;overflow:hidden;position:relative}
.ifg-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ifg-pdf-thumb{display:block;padding:0;background:#f5f5f0}
.ifg-pdf-thumb canvas{display:block;width:100%;height:auto;position:absolute;top:0;left:0}
.ifg-pdf-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:6px;font-size:28px;color:var(--ifg-a);opacity:.7}
.ifg-card-body{padding:10px 12px 12px}
.ifg-card-ttl{font-size:13px;font-weight:700;color:#1a1714;margin-bottom:3px;line-height:1.35}
.ifg-card-hint{font-size:11px;color:#a09a90}
.ifg-empty{text-align:center;padding:36px 20px;color:#a09a90;border:2px dashed rgba(0,0,0,.09);border-radius:12px;font-size:14px}
.ifg-empty .em{font-size:34px;display:block;margin-bottom:8px}

/* ── Edit actions sur carte ── */
.ifg-card-acts{display:none;border-top:1px solid rgba(0,0,0,.07);padding:7px 10px;gap:6px;align-items:center;justify-content:flex-end;background:#fafaf8;flex-shrink:0}
.ifg-edit-on .ifg-card-acts{display:flex}
.ifg-btn-e{padding:5px 11px;border-radius:20px;border:1.5px solid var(--ifg-ab,rgba(184,113,58,.25));background:var(--ifg-al,rgba(184,113,58,.07));color:var(--ifg-a,#b8713a);font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap}
.ifg-btn-e:hover{background:var(--ifg-a,#b8713a);color:#fff;border-color:var(--ifg-a,#b8713a)}
.ifg-btn-d{width:27px;height:27px;border-radius:50%;border:1.5px solid rgba(0,0,0,.1);background:transparent;display:flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;transition:all .15s;flex-shrink:0}
.ifg-btn-d:hover{border-color:#dc2626;background:rgba(220,38,38,.07)}

/* ── Lightbox ── */
.ifg-lb{display:none;position:fixed;inset:0;background:rgba(0,0,0,.96);z-index:9800;flex-direction:column;cursor:zoom-out}
.ifg-lb.open{display:flex;animation:ifgFadeIn .18s ease}
@keyframes ifgFadeIn{from{opacity:0}to{opacity:1}}
.ifg-lb-x{position:absolute;top:11px;right:13px;z-index:9801;width:33px;height:33px;border-radius:50%;border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);color:#fff;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;font-family:system-ui}
.ifg-lb-x:hover{background:rgba(255,255,255,.2)}
.ifg-lb-zone{flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:48px 14px 6px;position:relative}
.ifg-lb-zone img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 8px 40px rgba(0,0,0,.7);user-select:none;transform-origin:center;cursor:zoom-in;touch-action:none;transition:none}
.ifg-lb-zone img.ifg-zoomed{cursor:grab}
.ifg-lb-zone img.ifg-drag{cursor:grabbing}
.ifg-lb-zone.ifg-pdf-mode{padding:7px 7px 0;flex-direction:column}
.ifg-pdf-frame{flex:1;width:100%;border:none;border-radius:5px 5px 0 0;background:#fff}
.ifg-pdf-note{font-size:11px;color:rgba(255,255,255,.38);text-align:center;padding:5px;flex-shrink:0}
.ifg-lb-hint{position:absolute;bottom:11px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.6);color:rgba(255,255,255,.52);font-size:11px;padding:3px 11px;border-radius:20px;white-space:nowrap;pointer-events:none;transition:opacity .4s}
.ifg-lb-no{font-size:70px;color:rgba(255,255,255,.18)}
.ifg-lb-bar{flex-shrink:0;background:rgba(10,10,10,.97);border-top:1px solid rgba(255,255,255,.07);padding:9px 14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;cursor:default}
.ifg-lb-info{flex:1;min-width:130px;overflow:hidden}
.ifg-lb-ttl{font-weight:700;color:#fff;font-size:13px;margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ifg-lb-cmt{font-size:11px;color:rgba(255,255,255,.47);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ifg-lb-acts{display:flex;gap:6px;flex-shrink:1;align-items:center;flex-wrap:wrap;min-width:0;max-width:100%;justify-content:flex-end}
.ifg-lb-btn{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.ifg-btn-dl{background:var(--ifg-a);color:#fff;border:none}
.ifg-btn-dl:hover{opacity:.85}
.ifg-btn-dl:disabled{opacity:.4;cursor:not-allowed}
.ifg-btn-src{border:1.5px solid rgba(255,255,255,.2);background:transparent;color:rgba(255,255,255,.72);text-decoration:none}
.ifg-btn-src:hover{background:rgba(255,255,255,.1);color:#fff}
.ifg-btn-close{border:1.5px solid rgba(255,255,255,.16);background:transparent;color:rgba(255,255,255,.48)}
.ifg-btn-close:hover{border-color:#ef4444;color:#ef4444}
.ifg-zoom-grp{display:flex;align-items:center;gap:3px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);border-radius:20px;padding:2px 5px}
.ifg-zoom-btn{width:23px;height:23px;border-radius:50%;border:none;background:transparent;color:rgba(255,255,255,.68);font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:system-ui}
.ifg-zoom-btn:hover{background:rgba(255,255,255,.14);color:#fff}
.ifg-zoom-ind{font-size:11px;color:rgba(255,255,255,.68);min-width:33px;text-align:center}

/* ── Modals ── */
.ifg-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:9900;align-items:center;justify-content:center;padding:20px}
.ifg-modal.open{display:flex}
.ifg-modal-box{background:#faf6f0;border-radius:17px;padding:24px 22px;width:100%;max-width:450px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.2);animation:ifgMdIn .2s ease}
@keyframes ifgMdIn{from{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:none}}
.ifg-modal-ttl{font-family:'Fraunces',Georgia,serif;font-size:18px;font-weight:700;margin-bottom:5px;color:#1a1714}
.ifg-modal-sub{font-size:13px;color:#6b6258;margin-bottom:17px;line-height:1.55}
.ifg-fld{margin-bottom:13px}
.ifg-fld label{display:block;font-size:11px;font-weight:700;color:#a09a90;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.ifg-fld input,.ifg-fld textarea,.ifg-fld select{width:100%;padding:9px 12px;border:1.5px solid rgba(0,0,0,.09);border-radius:9px;font-size:13.5px;font-family:inherit;color:#1a1714;background:#fff;outline:none;transition:border-color .2s}
.ifg-fld input:focus,.ifg-fld textarea:focus,.ifg-fld select:focus{border-color:var(--ifg-a)}
.ifg-fld textarea{resize:vertical;min-height:72px;line-height:1.6}
.ifg-fld-hint{font-size:11px;color:#a09a90;margin-top:3px}
.ifg-modal-err{font-size:13px;color:#dc2626;font-weight:700;min-height:16px;margin-bottom:9px}
.ifg-modal-acts{display:flex;gap:8px;justify-content:flex-end}
.ifg-btn-cancel{padding:8px 17px;border-radius:9px;border:1.5px solid rgba(0,0,0,.09);background:transparent;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;color:#6b6258;transition:all .15s}
.ifg-btn-cancel:hover{border-color:#dc2626;color:#dc2626}
.ifg-btn-submit{padding:8px 20px;border-radius:9px;border:none;background:var(--ifg-a);color:#fff;font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;transition:opacity .15s}
.ifg-btn-submit:hover{opacity:.85}
.ifg-src-tabs{display:flex;gap:3px;margin-bottom:8px;background:rgba(0,0,0,.05);border-radius:9px;padding:3px;width:fit-content}
.ifg-src-tab{padding:5px 12px;border-radius:7px;border:none;background:transparent;font-family:inherit;font-size:12px;font-weight:700;color:#6b6258;cursor:pointer;transition:all .15s}
.ifg-src-tab.active{background:#fff;color:#1a1714;box-shadow:0 1px 4px rgba(0,0,0,.1)}
.ifg-drop{border:2px dashed rgba(0,0,0,.09);border-radius:9px;padding:17px;text-align:center;cursor:pointer;transition:all .2s;background:#faf6f0}
.ifg-drop:hover,.ifg-drop.over{border-color:var(--ifg-a);background:var(--ifg-al)}
.ifg-drop input[type=file]{display:none}
.ifg-drop-lbl{font-size:13px;color:#6b6258}
.ifg-drop-lbl strong{color:var(--ifg-a);cursor:pointer}
.ifg-prev-img{margin-top:8px;border-radius:9px;overflow:hidden;background:#111;display:flex;align-items:center;justify-content:center;max-height:140px}
.ifg-prev-img img{max-width:100%;max-height:140px;object-fit:contain;display:block}
.ifg-pdf-ind{display:flex;align-items:center;gap:10px;padding:11px 14px;background:rgba(0,0,0,.04);border-radius:9px;margin-top:8px}
.ifg-pdf-ind-ico{font-size:27px;flex-shrink:0}
.ifg-pdf-ind-info{font-size:13px;color:#6b6258;line-height:1.5}
