:root{
  --bg:#f5f7fb; --text:#0b1220; --muted:#5b6477;
  --card:#fff; --border:rgba(15,23,42,.10);
  --shadow:0 18px 45px rgba(15,23,42,.08);
  --shadow2:0 10px 26px rgba(15,23,42,.08);
  --green:#18a957; --green2:#0e8e45; --chip:#f2f5fb;
}
*{box-sizing:border-box}
body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--text)}
.muted{color:var(--muted)}
.top{position:sticky;top:0;z-index:10;background:rgba(245,247,251,.72);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.topInner{max-width:1060px;margin:0 auto;padding:14px 16px;display:flex;justify-content:space-between;gap:14px;align-items:center}
.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;min-width:240px}
.brandLogo{width:44px;height:44px;border-radius:14px;border:1px solid var(--border);object-fit:cover;background:#fff}
.brandTitle{font-weight:900}
.brandSub{font-size:12px;color:var(--muted);margin-top:2px}
.topActions{display:flex;gap:10px;align-items:center}
.chip{padding:8px 12px;border-radius:999px;background:var(--chip);border:1px solid var(--border);text-decoration:none;color:inherit;font-weight:800;font-size:13px}
.btnGhost{padding:10px 12px;border-radius:14px;background:var(--card);border:1px solid var(--border);cursor:pointer;font-weight:900;display:flex;align-items:center;gap:8px;box-shadow:0 1px 0 rgba(15,23,42,.02)}
.ico{opacity:.75}
.wrap{max-width:1060px;margin:0 auto;padding:22px 16px 40px}
.hero h1{font-size:54px;line-height:1.02;margin:18px 0 6px;letter-spacing:-1px}
.gridSection{margin-top:18px}
.sectionTop{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin:14px 0 10px}
.countPill{background:var(--card);border:1px solid var(--border);border-radius:999px;padding:8px 12px;box-shadow:0 1px 0 rgba(15,23,42,.02);font-weight:900;font-size:13px}
.searchWrap{flex:1;min-width:260px;display:flex;justify-content:flex-end}
.search{width:min(460px,100%);padding:12px 14px;border-radius:16px;border:1px solid var(--border);background:var(--card);outline:none;box-shadow:0 1px 0 rgba(15,23,42,.02);font-weight:700}
.search:focus{border-color:rgba(24,169,87,.35);box-shadow:0 0 0 4px rgba(24,169,87,.10)}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:860px){.hero h1{font-size:42px}.cards{grid-template-columns:1fr}}
.appCard{background:var(--card);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);padding:16px;display:flex;gap:14px;align-items:flex-start}
.appIcon{width:74px;height:74px;border-radius:18px;border:1px solid var(--border);object-fit:cover;background:#fff;flex:0 0 auto}
.appMain{flex:1;min-width:0}
.appNameRow{display:flex;align-items:center;gap:10px;min-width:0}
.appName{font-weight:950;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.badge{font-size:12px;font-weight:950;padding:6px 10px;border-radius:999px;background:rgba(24,169,87,.10);color:var(--green2);border:1px solid rgba(24,169,87,.22)}
.appDesc{margin:8px 0 10px;color:var(--muted);line-height:1.35;font-weight:650}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}
.tag{font-size:12px;font-weight:900;padding:7px 10px;border-radius:999px;border:1px solid var(--border);background:#fff;color:#1f2a44}
.appActions{display:flex;gap:10px;align-items:center;margin-top:6px}
.btnPrimary{background:linear-gradient(180deg,var(--green),var(--green2));color:#fff;border:none;border-radius:14px;padding:10px 16px;font-weight:950;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow2)}
.btnPrimary[aria-disabled="true"]{opacity:.6;pointer-events:none}
.btnLinkSmall{border:1px solid var(--border);background:#fff;border-radius:14px;padding:10px 12px;font-weight:950;cursor:pointer}
.footer{margin-top:26px}
.footerLine{display:flex;gap:8px;align-items:center;padding-top:18px}
.email{color:var(--green2);font-weight:950;text-decoration:none}
.empty{margin-top:14px;color:var(--muted);font-weight:900}
.error{margin-top:12px;color:#b42318;font-weight:900}
.modal::backdrop{background:rgba(15,23,42,.28)}
.modal{border:none;background:transparent;padding:0}
.modalCard{width:min(920px,calc(100vw - 28px));background:var(--card);border:1px solid var(--border);border-radius:24px;box-shadow:0 30px 80px rgba(15,23,42,.20);padding:16px;margin:18px auto;position:relative}
.close{position:absolute;top:12px;right:12px;border:1px solid var(--border);background:#fff;border-radius:12px;padding:8px 10px;font-weight:950;cursor:pointer}
.modalHeader{display:flex;gap:14px;align-items:flex-start;padding-right:44px}
.mLogo{width:96px;height:96px;border-radius:22px;border:1px solid var(--border);object-fit:cover;background:#fff}
.mName{font-weight:980;font-size:22px}
.mMeta{color:var(--muted);font-weight:800;margin-top:2px}
.mTags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.mActions{margin-left:auto;padding-top:4px}
.mDesc{margin-top:14px;color:#1f2a44;line-height:1.5;font-weight:700;white-space:pre-wrap}
.cardWhite{background:var(--card);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);padding:14px}
.iframeWrap{border:1px solid var(--border);border-radius:16px;overflow:hidden;background:#fff}


/* Socials (footer) */
.socials{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.socialBtn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid var(--border, rgba(255,255,255,.14));
  background: rgba(255,255,255,.06);
  text-decoration:none;
  font-weight: 900;
  line-height: 1;
  transition: transform .12s ease, filter .12s ease;
}
.socialBtn:hover{ transform: translateY(-1px); filter: brightness(1.05); }
.socialBtn:active{ transform: translateY(0px); }
.socialIco{
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 1px solid var(--border, rgba(255,255,255,.14));
  background: rgba(255,255,255,.04);
  display:flex;
  align-items:center;
  justify-content:center;
}
.socialIco img{ width:16px; height:16px; display:block; opacity:.92; }
.socialHandle{ display:none !important; }
@media (max-width: 520px){
  .socialHandle{ display:none !important; } /* icônes only sur petit écran */
  .socialBtn{ padding: 8px; }
  .socialIco{ width: 34px; height: 34px; }
  .socialIco img{ width:18px; height:18px; }
}

.privacyLink{
  font-size:12px;
  opacity:.6;
  text-decoration:none;
}
.privacyLink:hover{ opacity:.9; }

/* Option B — Mail icon ultra minimal */
.socialBtn{
  border: none !important;
  background: transparent !important;
  padding: 6px !important;
}
.socialBtn:hover{
  filter: brightness(1.15);
}
.socialIco{
  border: none !important;
  background: transparent !important;
}

/* Instagram icon slightly bigger */
a[aria-label="Instagram"] .socialIco img{
  width:20px;
  height:20px;
}

/* X (Twitter) icon slightly smaller */
a[aria-label="X / Twitter"] .socialIco img{
  width:15px;
  height:15px;
}

/* Micro-interactions */
.fadeIn{ animation: fadeInUp .35s ease both; }
@keyframes fadeInUp{ from{ opacity:0; transform: translateY(6px);} to{ opacity:1; transform: translateY(0);} }
.appCard{ transition: transform .12s ease, filter .12s ease; }
.appCard:active{ transform: scale(.99); }
