/* Hola Vecino — carreaux bleus (azulejos), murs blanchis, soleil */
:root{
  --ink:#14213D; --cobalt:#1E4E8C; --cobalt-d:#163B6B; --sky:#DCE8F5; --paper:#F7F9FC; --white:#fff;
  --sun:#F2B705; --olive:#5C7A3A; --red:#B3261E; --line:#C9D6E8; --muted:#56637A;
  --display:"Bricolage Grotesque", "Trebuchet MS", system-ui, sans-serif;
  --body:"Atkinson Hyperlegible", "Segoe UI", system-ui, sans-serif;
  --r-s:6px; --r-m:12px;
  --tile:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' fill='%23F7F9FC'/%3E%3Cpath d='M32 6 L40 24 L58 32 L40 40 L32 58 L24 40 L6 32 L24 24Z' fill='%231E4E8C'/%3E%3Cpath d='M32 18 L36 28 L46 32 L36 36 L32 46 L28 36 L18 32 L28 28Z' fill='%23F7F9FC'/%3E%3Ccircle cx='32' cy='32' r='4' fill='%23F2B705'/%3E%3Cpath d='M0 0h14v3H3v11H0zM64 0v14h-3V3H50V0zM0 64V50h3v11h11v3zM64 64H50v-3h11V50h3z' fill='%231E4E8C'/%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 var(--body)}
h1,h2,h3{font-family:var(--display);line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(1.9rem,4vw,2.6rem);font-weight:800}
h2{font-size:1.35rem;font-weight:700}
h3{font-size:1.1rem;font-weight:700}
a{color:var(--cobalt)} a:hover{color:var(--cobalt-d)}
p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--sun);outline-offset:2px;border-radius:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--white);padding:6px 10px;z-index:99}
.muted{color:var(--muted)} .small{font-size:.9rem}
.lead{font-size:1.15rem;max-width:62ch}

/* En-tête */
.top{background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1000}
.top::before{content:"";display:block;height:10px;background:var(--tile) 0 0/10px 10px}
.top-inner{max-width:1180px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:18px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font:800 1.25rem var(--display);white-space:nowrap}
.brand-img{display:block;height:50px;width:auto}
.nav{display:flex;gap:4px;overflow-x:auto;flex:1;scrollbar-width:none}
.nav a{padding:8px 10px;border-radius:var(--r-s);text-decoration:none;color:var(--ink);white-space:nowrap;font-size:.95rem;position:relative}
.nav a:hover{background:var(--sky)}
.nav a[aria-current=page]{color:var(--cobalt);box-shadow:inset 0 -3px 0 var(--sun)}
.right{display:flex;align-items:center;gap:10px}
.account{display:flex;align-items:center;gap:8px}
.lang{position:relative}
#langbtn{background:none;border:1px solid var(--line);border-radius:var(--r-s);padding:6px 8px;cursor:pointer;display:flex}
.flag{display:inline-flex;width:26px;height:17px;border-radius:2px;overflow:hidden;box-shadow:0 0 0 1px rgba(20,33,61,.2)}
.flag svg{width:100%;height:100%;display:block}
#langlist{position:absolute;right:0;top:calc(100% + 6px);list-style:none;margin:0;padding:6px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);min-width:180px;box-shadow:0 10px 30px rgba(20,33,61,.15)}
#langlist button{display:flex;gap:10px;align-items:center;width:100%;padding:8px 10px;border:0;background:none;font:inherit;color:var(--ink);cursor:pointer;border-radius:var(--r-s);text-align:left}
#langlist button:hover,#langlist button[aria-current]{background:var(--sky)}
.badge{display:inline-block;min-width:20px;padding:0 6px;border-radius:10px;background:var(--sun);color:var(--ink);font-size:.75rem;font-weight:700;text-align:center;margin-left:4px}

/* Boutons et formulaires */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 18px;border-radius:var(--r-s);border:2px solid var(--cobalt);background:var(--white);color:var(--cobalt);font:700 1rem var(--body);text-decoration:none;cursor:pointer}
.btn:hover{background:var(--sky)}
.btn.primary{background:var(--cobalt);color:var(--white)} .btn.primary:hover{background:var(--cobalt-d)}
.btn.danger{border-color:var(--red);color:var(--red)}
.btn.small{padding:6px 12px;font-size:.9rem}
.btn:disabled{opacity:.6;cursor:wait}
.linkbtn{background:none;border:0;padding:4px 0;color:var(--cobalt);font:inherit;text-decoration:underline;cursor:pointer}
input,select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--white);border:1.5px solid var(--line);border-radius:var(--r-s);padding:10px 12px}
input:focus,select:focus,textarea:focus{border-color:var(--cobalt);outline:none;box-shadow:0 0 0 3px var(--sky)}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--cobalt)}
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.field>label,.label{font-weight:700;font-size:.92rem}
.check{display:flex;align-items:center;gap:8px;margin:8px 0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 16px}
fieldset{border:0;border-top:2px solid var(--cobalt);margin:0 0 26px;padding:14px 0 0}
legend{font:700 1.1rem var(--display);padding-right:12px;color:var(--cobalt)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip input{position:absolute;opacity:0}
.chip span{display:inline-block;padding:6px 12px;border:1.5px solid var(--line);border-radius:20px;background:var(--white);cursor:pointer;font-size:.92rem}
.chip input:checked+span{background:var(--cobalt);border-color:var(--cobalt);color:var(--white)}
.chip input:focus-visible+span{outline:3px solid var(--sun)}
.stack{display:flex;flex-direction:column;gap:4px;max-width:640px}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:10px 0}
.notice{background:#FFF6D6;border-left:4px solid var(--sun);padding:12px 14px;border-radius:var(--r-s)}
.empty{padding:24px;border:2px dashed var(--line);border-radius:var(--r-m);color:var(--muted);text-align:center}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:18px;margin-bottom:20px}
.msg{min-height:1.4em;color:var(--muted)}

/* Mise en page */
main{max-width:1180px;margin:0 auto;padding:32px 20px 60px;outline:none}
.page{max-width:860px}.page.wide{max-width:none}
.narrow{max-width:520px;margin:20px auto}
.back{display:inline-block;margin-bottom:14px}
.titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* Accueil */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;min-height:52vh}
.hero h1{font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.02;letter-spacing:-.02em;max-width:12ch}
.tilewall{align-self:stretch;min-height:340px;border-radius:var(--r-m);background:var(--tile) 0 0/64px 64px;box-shadow:inset 0 0 0 6px var(--cobalt);position:relative;overflow:hidden}
.tilewall::after{content:"";position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(transparent,var(--paper))}
@media (prefers-reduced-motion:no-preference){.tilewall{animation:tiles 1.4s ease-out both}@keyframes tiles{from{background-size:20px 20px;opacity:.3}to{background-size:64px 64px;opacity:1}}}
.doors{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;margin-top:40px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}
.door{display:flex;gap:16px;padding:22px;background:var(--white);text-decoration:none;color:var(--ink)}
.door:hover{background:var(--sky)}
.door strong{display:block;font:700 1.2rem var(--display);margin-bottom:4px;color:var(--cobalt)}
.door-tile{flex:none;width:44px;height:44px;border-radius:6px;background:var(--tile) center/44px 44px}
.d1 .door-tile{filter:hue-rotate(160deg) saturate(.7)} .d2 .door-tile{filter:hue-rotate(-40deg)} .d3 .door-tile{filter:grayscale(.3) hue-rotate(60deg)}

/* Guide */
.progress{display:flex;align-items:center;gap:12px;font-weight:700}
.progress .bar{flex:0 1 260px;height:10px;background:var(--sky);border-radius:5px;overflow:hidden}
.progress .bar span{display:block;height:100%;background:var(--olive)}
.steps{list-style:none;padding:0;margin:24px 0}
.step{display:grid;grid-template-columns:52px 1fr;gap:16px;padding:20px 0;border-top:1px solid var(--line)}
.step .num{width:44px;height:44px;display:grid;place-items:center;border-radius:6px;background:var(--cobalt);color:var(--white);font:800 1.2rem var(--display)}
.step.done .num{background:var(--olive)}
.step.done h2{color:var(--olive)}
.step p{max-width:68ch}

/* Carte et membres */
.filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:0 14px;margin:16px 0}
.map{height:430px;border-radius:var(--r-m);border:1px solid var(--line);z-index:1}
.small-map{height:300px}
.count{margin:12px 0}
.members{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.member{display:flex;gap:14px;align-items:flex-start;padding:16px;background:var(--white);border:1px solid var(--line);border-left:5px solid var(--cobalt);border-radius:var(--r-s)}
.member-body{flex:1;min-width:0}.member h3{margin:0 0 2px}.member p{margin:0 0 2px}
.avatar{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--sky);color:var(--cobalt);font:800 1rem var(--display)}
.avatar.big{width:72px;height:72px;font-size:1.5rem}
.profile-head{display:flex;align-items:center;gap:16px;margin-bottom:16px}.profile-head h1{margin:0}
.bio{font-size:1.1rem;max-width:65ch}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px 20px;margin:20px 0}
.facts dt{font-size:.85rem;color:var(--muted)}.facts dd{margin:0;font-weight:700}

/* Forum */
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 20px}
.tabs button{border:1.5px solid var(--line);background:var(--white);padding:6px 12px;border-radius:20px;font:inherit;font-size:.9rem;cursor:pointer;color:var(--ink)}
.tabs button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--white)}
.threads{list-style:none;padding:0;margin:0}
.threads li{display:flex;flex-direction:column;gap:2px;padding:14px 0;border-bottom:1px solid var(--line)}
.threads a{font-size:1.08rem;text-decoration:none}.threads a:hover{text-decoration:underline}
.post{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:16px 18px;margin-bottom:12px}
.post header{margin-bottom:8px}.post footer{text-align:right}
.replies .post{margin-left:24px;border-left:4px solid var(--sky)}

/* Messagerie */
.convs{list-style:none;padding:0;margin:0}
.convs a{display:flex;gap:12px;align-items:center;padding:14px 8px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.convs a:hover{background:var(--sky)}
.conv-body{flex:1;min-width:0;display:flex;flex-direction:column}
.conv-body .muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bubbles{height:55vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m)}
.bubble{max-width:75%;padding:10px 14px;border-radius:14px 14px 14px 4px;background:var(--sky)}
.bubble.mine{align-self:flex-end;background:var(--cobalt);color:var(--white);border-radius:14px 14px 4px 14px}
.bubble p{margin:0}.bubble time{display:block;font-size:.75rem;opacity:.75;margin-top:2px}
.composer{display:flex;gap:10px;margin-top:12px;align-items:flex-end}

/* Contacts */
.contacts{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:36px}
.contact{background:var(--white);border:1px solid var(--line);border-top:5px solid var(--sun);border-radius:var(--r-s);padding:16px}
.contact p{margin-bottom:6px}
.contact-links{display:flex;flex-direction:column;gap:2px;word-break:break-word}

/* Finances */
.fin{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);gap:32px;align-items:start}
.fin-result{position:sticky;top:90px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:22px;box-shadow:inset 0 6px 0 var(--cobalt)}
.segmented{display:inline-flex;border:2px solid var(--cobalt);border-radius:var(--r-s);overflow:hidden;margin-bottom:14px}
.segmented input{position:absolute;opacity:0}
.segmented span{display:block;padding:8px 16px;cursor:pointer;font-weight:700;color:var(--cobalt)}
.segmented input:checked+span{background:var(--cobalt);color:var(--white)}
.segmented input:focus-visible+span{outline:3px solid var(--sun);outline-offset:-3px}
.big-figure{display:flex;flex-direction:column;margin:6px 0}
.big-figure strong{font:800 2.6rem/1.1 var(--display)}
.big-figure.good strong{color:var(--olive)}.big-figure.tight strong{color:#9A6B00}.big-figure.bad strong{color:var(--red)}
.verdict{font-weight:700}
.bars{list-style:none;padding:0;margin:16px 0}
.bars li{display:grid;grid-template-columns:minmax(0,9rem) 1fr 5.5rem;gap:10px;align-items:center;font-size:.9rem;padding:3px 0}
.bars .bar{height:10px;background:var(--sky);border-radius:5px;overflow:hidden}
.bars .bar span{display:block;height:100%;background:var(--cobalt)}
.bars .amt{font-variant-numeric:tabular-nums;text-align:right}
.total{display:flex;justify-content:space-between;gap:10px;border-top:2px solid var(--ink);padding-top:8px;margin:6px 0}
.upfront{margin-top:16px}
.warn{color:var(--red);font-weight:700}.ok{color:var(--olive);font-weight:700}
.ai{margin:18px 0;padding-top:16px;border-top:1px solid var(--line)}
.ai-text{margin-top:12px;padding:14px;background:var(--paper);border-radius:var(--r-s)}

/* Pied et toast */
.footer{border-top:1px solid var(--line);padding:24px 20px;text-align:center;color:var(--muted);font-size:.9rem;background:var(--white)}
.footer p{margin:4px 0}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:var(--white);padding:12px 18px;border-radius:var(--r-s);z-index:2000;max-width:90vw}
hr{border:0;border-top:1px solid var(--line);margin:30px 0}
[hidden]{display:none!important}

@media (max-width:900px){
  .top-inner{flex-wrap:wrap;gap:8px}
  .nav{order:3;flex-basis:100%}
  .right{margin-left:auto}
  .hero{grid-template-columns:1fr;min-height:0}
  .tilewall{min-height:140px}
  .doors{grid-template-columns:1fr}
  .fin{grid-template-columns:1fr}
  .fin-result{position:static}
}
@media (max-width:520px){
  body{font-size:16px}
  main{padding:20px 14px 48px}
  .account .btn{padding:6px 10px}
  .replies .post{margin-left:10px}
  .bubble{max-width:88%}
  .bars li{grid-template-columns:minmax(0,7rem) 1fr 5rem}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
main:focus,main:focus-visible{outline:none}

/* ===== v2 ===== */
img.avatar{object-fit:cover;border:0}
.avatar.tiny{width:30px;height:30px;font-size:.75rem;display:inline-grid;vertical-align:middle}
.bell{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:var(--ink)}
.bell:hover{background:var(--sky)}
.bell .badge{position:absolute;top:0;right:-4px;margin:0}
.me-link{display:flex;border-radius:50%}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 4px}
.tag{display:inline-block;font-size:.78rem;font-weight:700;padding:2px 8px;border-radius:4px;background:var(--sky);color:var(--cobalt)}
.tag.verified{background:#E4EEDB;color:var(--olive)}
.tag.guide{background:#FDE9E7;color:var(--red)}
.tag.obj{background:var(--sun);color:var(--ink)}
.tag.danger,.tag.st-declined{background:#FDE9E7;color:var(--red)}
.tag.st-going{background:#E4EEDB;color:var(--olive)}
.member.is-guide{border-left-color:var(--red)}
.avatar-edit{display:flex;gap:18px;align-items:center;margin-bottom:14px}
.avatar-edit .actions{margin:6px 0 0}
.tabs .tab{border:1.5px solid var(--line);background:var(--white);padding:6px 12px;border-radius:20px;font-size:.9rem;color:var(--ink);text-decoration:none}
.tabs .tab[aria-current=page]{background:var(--ink);border-color:var(--ink);color:var(--white)}
.checklist{list-style:none;padding:0;margin:16px 0}
.checklist li{border-bottom:1px solid var(--line);padding:6px 0}
.checklist li.done span{color:var(--olive);text-decoration:line-through;text-decoration-color:rgba(92,122,58,.5)}
.country-pick{flex-wrap:wrap;margin:10px 0 20px}
.country-points{padding-left:1.2em;max-width:68ch}.country-points li{margin-bottom:10px}
.deadlines{list-style:none;padding:0;margin:0 0 24px}
.deadlines li{display:grid;grid-template-columns:9.5rem 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.deadlines time{font:700 1rem var(--display);color:var(--cobalt)}
.deadlines li.past{opacity:.55}
.lexicon{display:grid;gap:14px;margin:18px 0}
.lexicon div{padding:12px 16px;background:var(--white);border-left:4px solid var(--cobalt);border-radius:var(--r-s)}
.lexicon dt{font:700 1.05rem var(--display)}.lexicon dd{margin:2px 0 0}
.charter{padding-left:1.3em}.charter li{margin-bottom:12px}
.compare{margin-top:40px}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-m);background:var(--white)}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.cmp td{font-variant-numeric:tabular-nums;text-align:right}
table.cmp select{min-width:150px}
.events{display:grid;gap:12px}
.event-card{display:flex;gap:16px;padding:16px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);text-decoration:none;color:var(--ink)}
.event-card:hover{border-color:var(--cobalt)}
.event-card.cancelled{opacity:.6}
.cal{flex:none;width:62px;border-radius:8px;overflow:hidden;text-align:center;border:2px solid var(--cobalt);background:var(--white);align-self:flex-start}
.cal span{display:block;background:var(--cobalt);color:var(--white);font-size:.75rem;font-weight:700;padding:2px 0;text-transform:capitalize}
.cal strong{display:block;font:800 1.6rem/1.5 var(--display);color:var(--cobalt)}
.event-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.event-title{font:700 1.15rem var(--display);color:var(--cobalt)}
.event-when{font-size:1.05rem}
.organizer{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.objective{background:var(--white);border:1px solid var(--line);border-left:6px solid var(--sun);border-radius:var(--r-s);padding:14px 18px;margin:18px 0}
.objective h2{font-size:1rem;color:var(--muted);margin-bottom:4px}
.objective p{font-size:1.1rem;margin:0}
.address{background:#E4EEDB;padding:10px 14px;border-radius:var(--r-s)}
.avatars{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.iresults{list-style:none;padding:0;margin:0}
.iresults li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.iresults li>span{flex:1}
.qblock{padding:14px;margin-bottom:12px}
.notifs{list-style:none;padding:0;margin:0}
.notifs a{display:flex;gap:12px;align-items:flex-start;padding:12px 8px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.notifs li.unread a{background:#FFF6D6}
.chat-head{display:flex;align-items:center;gap:12px}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:24px}
.stat{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:14px}
.stat strong{display:block;font:800 2rem var(--display);color:var(--cobalt)}
.admin-list{list-style:none;padding:0;margin:0 0 24px}
.admin-list li{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--line)}
@media (max-width:520px){.deadlines li{grid-template-columns:1fr}.event-card{gap:12px}.cal{width:52px}}

/* ===== v3 ===== */
.top-inner{flex-wrap:wrap;row-gap:4px}.nav{order:3;flex-basis:100%;margin:0 -10px}.right{margin-left:auto}
.premium-link{font-weight:700;font-size:.9rem;color:#8A6400;text-decoration:none;padding:6px 10px;border-radius:20px;border:1.5px solid var(--sun);white-space:nowrap}
.premium-link:hover{background:#FFF6D6;color:#8A6400}
.premium-link.on{background:var(--sun);color:var(--ink)}
.locked{border:2px dashed var(--sun);background:#FFFBEA;border-radius:var(--r-m);padding:22px;text-align:center;margin:16px 0}
.premium-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;margin:20px 0}
.plan{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:22px}
.plan-premium{border:2px solid var(--sun);box-shadow:inset 0 6px 0 var(--sun)}
.plan-price strong{font:800 2.4rem var(--display);color:var(--cobalt)}
.ticks{list-style:none;padding:0;margin:14px 0}
.ticks li{padding:6px 0 6px 28px;position:relative}
.ticks li::before{content:"✓";position:absolute;left:4px;color:var(--olive);font-weight:800}
.publish-cta{margin-left:auto}
.listings{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.listing{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:16px}
.listing h3{margin:4px 0}
.is-featured{border:2px solid var(--sun)}
.tag.sponsored{background:#EEE;color:var(--muted)}
.yt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.yt{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;display:flex;flex-direction:column}
.yt-thumb{display:block;aspect-ratio:16/9;background:var(--ink);position:relative}
.yt-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.yt-play{position:absolute;inset:0;display:grid;place-items:center}
.yt-play::after{content:"";border-left:28px solid var(--white);border-top:17px solid transparent;border-bottom:17px solid transparent;margin-left:6px}
.yt-body{padding:14px}
.segmented.wrap{flex-wrap:wrap}
.suggestions{list-style:none;padding:0;margin:20px 0}
.suggestions li{display:flex;gap:16px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line)}
.suggestions h3{margin:0 0 4px}
.vote{flex:none;width:58px;display:flex;flex-direction:column;align-items:center;padding:6px 0;border:2px solid var(--line);border-radius:var(--r-s);background:var(--white);color:var(--muted);cursor:pointer;font:inherit}
.vote strong{font:800 1.1rem var(--display);color:var(--ink)}
.vote.on{border-color:var(--cobalt);background:var(--sky);color:var(--cobalt)}
.tag.ss-planned{background:#FFF6D6;color:#8A6400}.tag.ss-done{background:#E4EEDB;color:var(--olive)}.tag.ss-declined{background:#EEE;color:var(--muted)}
.footer-links a{font-weight:700}
@media (max-width:760px){.premium-grid{grid-template-columns:1fr}}
@media print{
  .top,.footer,.fin-form,.compare,.ai,#printbtn,.lead,.toast{display:none!important}
  body{background:#fff}
  main{padding:0}
  .fin{display:block}
  .fin-result{position:static;border:0;box-shadow:none}
}

/* ===== v4 : tableau de bord ===== */
.dash-head{display:flex;gap:18px;align-items:center;margin-bottom:20px}
.dash-head h1{margin:0}
.dash-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:28px;align-items:start}
.dash-block{margin-bottom:26px}
.dash-block .titlebar h2{margin:0}
.dash-block .titlebar{border-bottom:2px solid var(--cobalt);padding-bottom:6px;margin-bottom:10px}
.dash-events,.welcome,.helpers{list-style:none;padding:0;margin:0}
.dash-events a{display:flex;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.dash-events a>span:last-child{display:flex;flex-direction:column}
.dash-events strong{color:var(--cobalt)}
.welcome li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.welcome li>span{flex:1;display:flex;flex-direction:column}
.helpers li{display:flex;align-items:center;gap:8px;padding:6px 0}
.helpers li a{flex:1}
.dash-side{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:18px;position:sticky;top:110px}
.rep-big strong{font:800 2.4rem var(--display);color:var(--olive)}
.dash-links{display:flex;flex-wrap:wrap;gap:6px}
.dash-links a{font-size:.9rem;padding:5px 10px;border:1.5px solid var(--line);border-radius:20px;text-decoration:none;color:var(--ink)}
.bds{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.bd{display:inline-flex;gap:4px;align-items:center;font-size:.82rem;font-weight:700;padding:3px 10px;border-radius:20px;background:#E4EEDB;color:var(--olive)}
.rep h2{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.rep-points{font:700 1rem var(--body);color:var(--olive)}
@media (max-width:860px){.dash-grid{grid-template-columns:1fr}.dash-side{position:static}}
@media (min-width:700px){.nav{flex-wrap:wrap;overflow:visible}}
.avatars a{text-decoration:none}
.organizer .tag,.tags .tag{margin-right:2px}
.dash-block .titlebar{flex-wrap:nowrap;align-items:baseline}
.dash-block .titlebar a{white-space:nowrap}
@media (max-width:520px){
  .premium-link{padding:4px 10px}
  .dash-head{gap:12px;align-items:flex-start}
  .dash-head .avatar.big{width:52px;height:52px;font-size:1.1rem}
  .dash-head h1{font-size:1.7rem}
  .dash-block h2{font-size:1.15rem}
}

/* ===== v5 ===== */
.brand-img{display:block;height:50px;width:auto}
.hero-logo{display:grid;place-items:center;border-radius:var(--r-m);background:var(--tile) 0 0/64px 64px;box-shadow:inset 0 0 0 6px var(--cobalt);padding:28px;position:relative}
.hero-logo::before{content:"";position:absolute;inset:30px;border-radius:50%;background:#fff;box-shadow:0 0 0 10px rgba(255,255,255,.6)}
.hero-logo img{position:relative;width:100%;max-width:380px;height:auto}
/* Menu personnel */
.me-wrap{position:relative}
.me-btn{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:1.5px solid var(--line);border-radius:24px;background:var(--white);font:700 .92rem var(--body);color:var(--ink);cursor:pointer}
.me-btn:hover{background:var(--sky)}
.me-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:210px;list-style:none;margin:0;padding:6px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);box-shadow:0 10px 30px rgba(20,33,61,.15);z-index:1100}
.me-menu a,.me-menu button{display:block;width:100%;text-align:left;padding:9px 12px;border-radius:var(--r-s);color:var(--ink);text-decoration:none;font:inherit}
.me-menu a:hover,.me-menu button:hover{background:var(--sky)}
.me-menu li:last-child{border-top:1px solid var(--line);margin-top:4px;padding-top:4px}
#logout{display:block}
/* Recherche */
.searchbox{margin:10px 0 16px;max-width:520px}
.searchbox input{padding-left:38px;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2356637A' stroke-width='2.4'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") 12px center no-repeat}
.tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.tools .searchbox{flex:1;min-width:220px;margin:10px 0}
.tools select{width:auto}
/* Installation sur téléphone */
.installbar{position:fixed;left:10px;right:10px;bottom:10px;z-index:3000;display:flex;align-items:center;gap:12px;padding:12px;background:var(--white);border:2px solid var(--cobalt);border-radius:var(--r-m);box-shadow:0 12px 40px rgba(20,33,61,.25)}
.installbar img{width:48px;height:48px;border-radius:10px;flex:none}
.installbar p{margin:2px 0 0;font-size:.88rem}
.installbar-actions{display:flex;flex-direction:column;gap:4px;align-items:flex-end;flex:none}
/* Avocat */
.lawyer{margin:22px 0;padding:16px 18px;border:1px solid var(--line);border-left:6px solid var(--cobalt);border-radius:var(--r-s);background:var(--white)}
.lawyer p{margin:6px 0 10px}
/* Réseaux sociaux */
.social{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:10px 0}
.social-title{font-weight:700;margin-right:4px}
.social a{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1.5px solid var(--line);border-radius:20px;color:var(--ink);text-decoration:none;font-weight:700;font-size:.9rem;background:var(--white)}
.social a:hover{border-color:var(--cobalt);color:var(--cobalt)}
.social svg{width:20px;height:20px}
/* Agenda */
.remform summary{list-style:none;display:inline-flex;cursor:pointer}
.remform summary::-webkit-details-marker{display:none}
.remform[open] summary{margin-bottom:14px}
details.card{padding:14px 18px}
.chip.on{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:16px;background:var(--cobalt);color:var(--white);font-size:.9rem}
.chip.on .linkbtn{color:var(--white);text-decoration:none;font-weight:700}
.ag-day{font-size:1.05rem;margin:24px 0 6px;padding-bottom:6px;border-bottom:2px solid var(--cobalt);text-transform:capitalize}
.ag-items{list-style:none;padding:0;margin:0}
.ag-item{display:grid;grid-template-columns:7.5rem 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.ag-item.past{opacity:.55}
.ag-time{font:700 .95rem var(--display);color:var(--cobalt)}
.ag-body .actions{margin:4px 0 0}
.ag-event{border-left:4px solid var(--sun);padding-left:10px}
.ag-deadline{border-left:4px solid var(--olive);padding-left:10px}
/* Drive */
.docs{list-style:none;padding:0;margin:0}
.docs li{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.docs li>div:nth-child(2){flex:1;min-width:180px}
.doc-ico{font-size:1.6rem}
.doclink{margin-left:30px;text-decoration:none;white-space:nowrap}
/* Articles */
.articles{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.article-card{display:flex;flex-direction:column;gap:6px;padding:16px;background:var(--white);border:1px solid var(--line);border-top:5px solid var(--red);border-radius:var(--r-s);text-decoration:none;color:var(--ink)}
.article-card strong{font:700 1.1rem var(--display);color:var(--cobalt)}
.article-card:hover{border-color:var(--cobalt)}
.article{max-width:760px}
.article-body{font-size:1.08rem}
.article-body h2{margin-top:1.4em}
.article-body li{margin-bottom:6px}
.wide-stack{max-width:none}
.chip-btn{border:1.5px solid var(--line);background:var(--white);padding:6px 12px;border-radius:20px;font:inherit;font-size:.9rem;cursor:pointer;color:var(--ink);text-align:left}
.chip-btn:hover{border-color:var(--cobalt);background:var(--sky)}
.home-block{margin-top:40px}
/* Chaîne YouTube */
.channel{margin:10px 0 24px;padding:18px;background:var(--white);border:1px solid var(--line);border-left:6px solid var(--red);border-radius:var(--r-m)}
.channel h2{margin:0}
.yt-dot{color:var(--red)}
.yt-mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:12px}
.yt-mini{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink);font-size:.9rem;font-weight:700}
.yt-mini img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-s)}
@media (max-width:520px){
  .brand-img{height:38px}
  .me-name{display:none}
  .ag-item{grid-template-columns:1fr;gap:2px}
  .doclink{margin-left:0;display:inline-block;margin-top:4px}
}

/* ===== v6 : un peu de vie ===== */
@keyframes hv-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes hv-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@keyframes hv-sun{0%,100%{box-shadow:0 0 0 8px rgba(242,183,5,.25),0 0 30px rgba(242,183,5,.5)}50%{box-shadow:0 0 0 14px rgba(242,183,5,.15),0 0 50px rgba(242,183,5,.6)}}
@keyframes hv-waves{from{background-position-x:0}to{background-position-x:720px}}
@keyframes hv-wave-hand{0%,60%,100%{transform:rotate(0)}10%,30%{transform:rotate(16deg)}20%,40%{transform:rotate(-8deg)}}
/* Apparition douce des pages */
#view > *{animation:hv-rise .45s ease both}
#view > *:nth-child(2){animation-delay:.06s}
#view > *:nth-child(3){animation-delay:.12s}
/* Accueil : soleil et palmier qui se balance */
.hero-logo{overflow:visible}
.hero-logo::after{content:"";position:absolute;top:-20px;right:-16px;width:74px;height:74px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#FFE27A,#F2B705 70%);animation:hv-sun 5s ease-in-out infinite;z-index:1}
.hero{position:relative}
.hero::after{content:"";position:absolute;left:calc((100% - 40px) * .55 + 40px - 58px);bottom:-18px;width:96px;height:156px;background:url("palm.svg") bottom/contain no-repeat;transform-origin:50% 100%;animation:hv-sway 6s ease-in-out infinite;pointer-events:none}
/* Pied de page : vagues et palmiers */
.footer{position:relative;padding-top:64px;overflow:hidden;background:linear-gradient(#fff 0,#fff 60%,#FFF6DA 100%)}
.footer::before{content:"";position:absolute;top:0;left:0;right:0;height:40px;background:url("waves.svg") repeat-x;background-size:720px 40px;animation:hv-waves 24s linear infinite}
.footer::after{content:"";position:absolute;bottom:0;left:0;right:0;height:120px;background:url("palm.svg") left 3% bottom/64px auto no-repeat,url("palm.svg") right 4% bottom/84px auto no-repeat;pointer-events:none;opacity:.9}
.footer > *{position:relative;z-index:1}
/* Petites attentions */
.wave-hand{display:inline-block;transform-origin:70% 80%;animation:hv-wave-hand 2.4s ease-in-out 1s 2}
.btn,.door,.event-card,.member,.listing,.article-card,.contact,.yt{transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.btn:hover{transform:translateY(-1px)}
.door:hover,.event-card:hover,.member:hover,.listing:hover,.article-card:hover,.contact:hover,.yt:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(20,33,61,.10)}
.door-tile{transition:transform .5s ease}
.door:hover .door-tile{transform:rotate(90deg)}
.empty::before{content:"";display:block;width:44px;height:62px;margin:0 auto 10px;background:url("palm.svg") center/contain no-repeat;opacity:.85}
.premium-link.on{animation:hv-sun 5s ease-in-out infinite}
@media (max-width:900px){.hero::after{left:auto;right:6%;bottom:auto;top:-10px;width:60px;height:100px}}
@media (max-width:520px){.footer::after{height:80px;background-size:44px auto,56px auto}}
.social-band{padding:18px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m)}
.side-social{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.side-social .social{justify-content:flex-start}
.social a{padding:8px 14px}
.contact-social .social{justify-content:flex-start;margin-top:18px}

/* ===== v7 : Présentations ===== */
.wall{max-width:760px}
.intro-cta{display:flex;gap:16px;align-items:flex-start;padding:18px;margin:10px 0 18px;background:#FFF6DA;border:2px solid var(--sun);border-radius:var(--r-m)}
.intro-cta p{margin:4px 0 10px}
.intro-wave{font-size:2rem;display:inline-block;transform-origin:70% 80%;animation:hv-wave-hand 2.4s ease-in-out .6s 3}
.composer-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:14px;margin-bottom:8px}
.composer-head{display:flex;gap:10px;align-items:flex-start}
.composer-head textarea{border:0;background:var(--paper);resize:vertical}
.composer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px}
.composer-actions .btn.primary{margin-left:auto}
.thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.thumb{position:relative;width:84px;height:84px}
.thumb img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-s)}
.thumb button{position:absolute;top:-6px;right:-6px;width:24px;height:24px;border-radius:50%;border:0;background:var(--ink);color:#fff;cursor:pointer;line-height:1}
.post-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:16px;margin:14px 0;transition:box-shadow .18s ease}
.post-card:hover{box-shadow:0 8px 22px rgba(20,33,61,.08)}
.post-card header{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.post-card header p{margin:2px 0 0}
.post-body{font-size:1.04rem;margin:0 0 10px}
.gallery{display:grid;gap:4px;border-radius:var(--r-s);overflow:hidden;margin-bottom:10px}
.gallery.g1{grid-template-columns:1fr}.gallery.g2{grid-template-columns:1fr 1fr}.gallery.g3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}.gallery.g4{grid-template-columns:1fr 1fr}
.gallery.g3 .ph:first-child{grid-row:span 2}
.ph{padding:0;border:0;background:var(--sky);cursor:zoom-in;display:block;aspect-ratio:4/3}
.gallery.g1 .ph{aspect-ratio:16/10}
.ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}
.ph:hover img{transform:scale(1.04)}
.post-card footer{display:flex;flex-wrap:wrap;align-items:center;gap:14px;border-top:1px solid var(--line);padding-top:8px}
.ole{border:1.5px solid var(--line);background:var(--white);border-radius:20px;padding:5px 12px;font:700 .9rem var(--body);cursor:pointer;color:var(--ink)}
.ole.on{background:#FDE9E7;border-color:var(--red);color:var(--red)}
.ole:active{transform:scale(1.12)}
.comments{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.comment{display:flex;gap:10px;margin-bottom:10px}
.comment p{margin:2px 0}
.comment-form{display:flex;gap:8px;align-items:center}
.comment-form input{flex:1}
.lightbox{position:fixed;inset:0;z-index:4000;background:rgba(10,16,30,.92);display:grid;place-items:center;padding:20px}
.lightbox img{max-width:100%;max-height:88vh;border-radius:var(--r-s);box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox button{position:absolute;border:0;background:rgba(255,255,255,.15);color:#fff;font-size:2rem;width:48px;height:48px;border-radius:50%;cursor:pointer}
.lb-close{top:14px;right:14px}.lb-prev{left:14px;top:50%}.lb-next{right:14px;top:50%}
.mini-posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.mini-post{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink)}
.mini-post img,.mini-txt{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r-s);background:var(--sky)}
.mini-txt{display:block;padding:10px;font-size:.85rem;overflow:hidden}

/* ===== v8 : amis et bulle de messagerie ===== */
.friend-box{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}
.chat-fab{position:fixed;right:20px;bottom:20px;z-index:2500;width:60px;height:60px;border-radius:50%;border:0;background:var(--cobalt);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 26px rgba(20,33,61,.3);transition:transform .18s ease}
.chat-fab:hover{transform:scale(1.07)}
.chat-fab .badge{position:absolute;top:-2px;right:-2px;margin:0;border:2px solid #fff}
.chat-panel{position:fixed;right:20px;bottom:92px;z-index:2600;width:370px;max-width:calc(100vw - 24px);height:540px;max-height:calc(100vh - 120px);display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 50px rgba(20,33,61,.28);overflow:hidden;animation:hv-rise .2s ease both}
.chat-head{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--cobalt);color:#fff}
.chat-head strong{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-head a{color:#fff;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.chat-icon{background:none;border:0;color:#fff;font-size:1.4rem;line-height:1;cursor:pointer;padding:2px 6px;text-decoration:none}
.chat-body{flex:1;overflow-y:auto;padding:12px}
.chat-label{font-weight:700;font-size:.85rem;color:var(--muted);margin:0 0 6px}
.chat-friends{display:flex;gap:10px;overflow-x:auto;padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid var(--line)}
.chat-friends button{display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:none;cursor:pointer;font:inherit;font-size:.8rem;color:var(--ink);min-width:58px}
.chat-convs{list-style:none;margin:0;padding:0}
.chat-convs button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 6px;border:0;border-bottom:1px solid var(--line);background:none;cursor:pointer;text-align:left;font:inherit;color:var(--ink)}
.chat-convs button:hover{background:var(--sky)}
.cc-body{flex:1;min-width:0;display:flex;flex-direction:column}
.cc-body .muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-panel .chat-bubbles{flex:1;height:auto;border:0;border-radius:0}
.chat-compose{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line);align-items:flex-end}
.chat-compose textarea{flex:1;resize:none;max-height:120px}
@media (max-width:520px){
  .chat-fab{right:14px;bottom:14px;width:56px;height:56px}
  .chat-panel{inset:0;width:auto;max-width:none;height:auto;max-height:none;border-radius:0}
}
.member{flex-wrap:wrap}.member > .actions{flex-basis:100%;margin:8px 0 0;justify-content:flex-end}

/* ===== v9 : jeux, inscription, bienvenue ===== */
.game-doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:20px 0}
.game-door,.play-teaser{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:22px;border-radius:var(--r-m);text-decoration:none;color:var(--ink);background:var(--white);border:1px solid var(--line);transition:transform .18s ease,box-shadow .18s ease}
.game-door:hover,.play-teaser:hover{transform:translateY(-4px) rotate(-.5deg);box-shadow:0 14px 30px rgba(20,33,61,.12)}
.memory-door{background:linear-gradient(135deg,#FFF6DA,#fff)}
.quiz-door{background:linear-gradient(135deg,#DCE8F5,#fff)}
.game-door strong,.play-teaser strong{font:800 1.3rem var(--display);color:var(--cobalt)}
.gd-emoji{font-size:2.2rem}
.word-card{margin:18px 0;padding:18px 20px;border-radius:var(--r-m);background:linear-gradient(180deg,#AA151B 0,#AA151B 25%,#F1BF00 25%,#F1BF00 75%,#AA151B 75%);position:relative;overflow:hidden}
.word-card > *{position:relative}
.word-card::before{content:"";position:absolute;inset:8px;border-radius:10px;background:#fff}
.word-card p{margin:4px 0}
.word-label{font-weight:700;font-size:.85rem;color:var(--muted)}
.word strong{font:800 1.7rem var(--display);color:var(--red)}
.word-tr{font-weight:700}
.word-ex{color:var(--muted)}
.word-card.compact{margin:0 0 16px}
.word-card.compact .word strong{font-size:1.35rem}
.speak{border:0;background:none;cursor:pointer;font-size:1.15rem;padding:2px 4px}
.speak.small{font-size:.95rem}
.game-stats{display:flex;gap:18px;font-size:1.05rem}
.memory{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:460px;margin:14px 0}
.mcard{position:relative;aspect-ratio:1;border:0;padding:0;background:none;cursor:pointer;perspective:600px}
.mcard span{position:absolute;inset:0;display:grid;place-items:center;border-radius:12px;backface-visibility:hidden;transition:transform .4s ease}
.mfront{font-size:2.2rem;background:var(--white);border:2px solid var(--line);transform:rotateY(180deg)}
.mback{background:var(--tile) center/48px 48px;border:3px solid var(--cobalt)}
.mcard.up .mfront{transform:rotateY(0)}
.mcard.up .mback{transform:rotateY(-180deg)}
.mcard.done .mfront{border-color:var(--olive);background:#E4EEDB;animation:hv-pop .4s ease}
@keyframes hv-pop{50%{transform:scale(1.12)}}
.game-end{padding:18px;margin:16px 0;border-radius:var(--r-m);background:#FFF6DA;border:2px solid var(--sun);text-align:center}
.game-end .actions{justify-content:center}
.big{font:800 1.8rem var(--display);margin:0 0 6px}
.board-box{margin-top:22px;padding:16px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);max-width:460px}
.board{list-style:none;padding:0;margin:0}
.board li{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}
.board li.me{background:#FFF6DA}
.board .rank{width:28px;text-align:center;font-weight:800}
.board .bn{flex:1}
.join-cta{margin-top:14px;padding:14px;border-radius:var(--r-s);background:var(--white);border:2px dashed var(--cobalt)}
.quiz-prog{color:var(--muted);font-weight:700}
.quiz-q{font:700 1.35rem var(--display);margin:10px 0 16px}
.quiz-opts{display:grid;gap:10px;max-width:560px}
.qopt{text-align:left;padding:14px 16px;border:2px solid var(--line);border-radius:var(--r-s);background:var(--white);font:inherit;font-size:1.02rem;cursor:pointer;color:var(--ink)}
.qopt:hover:not(:disabled){border-color:var(--cobalt);background:var(--sky)}
.qopt.right{border-color:var(--olive);background:#E4EEDB;font-weight:700}
.qopt.wrong{border-color:var(--red);background:#FDE9E7}
.quiz-why{margin:14px 0}
.home-play{margin-top:36px}
.home-play-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
.home-play-grid .word-card{margin:0}
.stats-band{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:22px;padding:16px;margin-bottom:16px;border-radius:var(--r-m);background:var(--cobalt);color:#fff}
.stats-band strong{font:800 1.5rem var(--display);color:var(--sun)}
.stats-band .btn{background:var(--sun);border-color:var(--sun);color:var(--ink)}
.auth-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;max-width:960px;margin:20px auto;align-items:start}
.auth-perks{padding:24px;border-radius:var(--r-m);background:linear-gradient(160deg,#FFF6DA,#fff);border:2px solid var(--sun)}
.auth-perks ul{list-style:none;padding:0;margin:12px 0}
.auth-perks li{padding:8px 0;font-size:1.02rem;border-bottom:1px dashed var(--line)}
.welcome-card{margin-bottom:26px;padding:18px;border-radius:var(--r-m);background:linear-gradient(135deg,#FFF6DA,#fff);border:2px solid var(--sun)}
.welcome-card .titlebar{border:0;margin:0}
.welcome-steps{list-style:none;padding:0;margin:8px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.welcome-steps a{text-decoration:none;color:var(--ink)}
.welcome-steps li.done a{color:var(--olive);text-decoration:line-through}
@media (max-width:760px){.auth-wrap,.home-play-grid,.welcome-steps{grid-template-columns:1fr}.memory{gap:7px}.mfront{font-size:1.8rem}}

/* ===== v10 : menu regroupé, barre d'onglets, nouvelles pages ===== */
.nav{align-items:center}
.navgroup{position:relative}
.navbtn{background:none;border:0;font:inherit;font-size:.95rem;color:var(--ink);padding:8px 10px;border-radius:var(--r-s);cursor:pointer;white-space:nowrap}
.navbtn:hover,.navgroup.open .navbtn{background:var(--sky)}
.navgroup.cur .navbtn{color:var(--cobalt);box-shadow:inset 0 -3px 0 var(--sun)}
.navdrop{display:none;position:absolute;left:0;top:calc(100% + 4px);min-width:230px;padding:6px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);box-shadow:0 14px 34px rgba(20,33,61,.16);z-index:1200}
.navgroup.open .navdrop{display:block}
@media (hover:hover) and (min-width:900px){.navgroup:hover .navdrop{display:block}}
.navdrop a{display:block;padding:9px 12px;border-radius:var(--r-s)}
.nav{overflow:visible}
.tabbar,.tabsheet{display:none}
@media (max-width:760px){
  .nav{display:none}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:2700;background:var(--white);border-top:1px solid var(--line);padding:4px 2px calc(4px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px rgba(20,33,61,.08)}
  .tabbar a,.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;font:600 .68rem var(--body);color:var(--muted);text-decoration:none;background:none;border:0;padding:4px 2px;cursor:pointer}
  .tabbar span{font-size:1.25rem}
  .tabbar .on{color:var(--cobalt)}
  .tabsheet{display:block;position:fixed;inset:0;z-index:2600;background:rgba(10,16,30,.4)}
  .tabsheet[hidden]{display:none}
  .sheet-panel{position:absolute;left:0;right:0;bottom:0;padding:16px 16px calc(80px + env(safe-area-inset-bottom));background:var(--white);border-radius:18px 18px 0 0;animation:hv-rise .2s ease both}
  .sheet-panel a{display:block;padding:13px 10px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:700}
  .sheet-title{font:800 1.1rem var(--display);margin:0 0 6px}
  body{padding-bottom:70px}
  .chat-fab{bottom:84px}
  .installbar{bottom:78px}
}
/* Partage */
.share-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.share-btn{display:inline-flex;align-items:center;padding:7px 14px;border-radius:20px;border:0;font:700 .88rem var(--body);color:#fff;text-decoration:none;cursor:pointer}
.share-btn.wa{background:#25D366}.share-btn.fb{background:#1877F2}.share-btn.x{background:#111}.share-btn.tg{background:#229ED9}.share-btn.cp{background:var(--sky);color:var(--cobalt)}
.public-card .pc-head{display:flex;gap:16px;align-items:center}
.ref-link code{display:block;padding:10px;background:var(--paper);border-radius:var(--r-s);word-break:break-all}
/* Assistant et traducteur */
.ai-box{height:48vh}
.bubble.typing p{animation:hv-pulse 1s ease-in-out infinite}
@keyframes hv-pulse{50%{opacity:.4}}
.quota{color:var(--muted)}
.chat-demo{display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);max-width:560px}
.tr-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:start}
.tr-col{display:flex;flex-direction:column;gap:8px}
.tr-col textarea{min-height:180px}
.swap{align-self:center;font-size:1.3rem}
@media (max-width:760px){.tr-grid{grid-template-columns:1fr}.swap{justify-self:center}}
/* Météo */
.wx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:16px}
.wx-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:14px}
.wx-card header{display:flex;justify-content:space-between;align-items:center}
.wx-now{font:800 1.3rem var(--display)}
.wx-days{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap}
.wx-day{display:flex;flex-direction:column;align-items:center;font-size:.85rem;min-width:52px}
.wx-pin span{display:inline-block;background:#fff;border:2px solid var(--cobalt);border-radius:14px;padding:2px 8px;font-weight:800;font-size:.85rem;white-space:nowrap;box-shadow:0 3px 8px rgba(0,0,0,.15)}
.wx-mini{display:flex;gap:12px;align-items:center;padding:12px;margin-bottom:14px;border-radius:var(--r-m);background:linear-gradient(135deg,#DCE8F5,#fff);text-decoration:none;color:var(--ink)}
.wx-mini .wx-days{gap:6px;font-size:.8rem}
/* Vidéos */
.shorts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.short-frame{aspect-ratio:9/16;background:var(--ink);border-radius:var(--r-m);overflow:hidden;display:grid;place-items:center}
.short-frame iframe{width:100%;height:100%;border:0}
.short-frame blockquote{margin:0;max-width:100%;background:#fff;overflow:auto;max-height:100%}
.short-play{position:relative;width:100%;height:100%;border:0;background:linear-gradient(160deg,#1E4E8C,#AA151B);color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font:inherit}
.short-play .yt-play{position:static}
.pf{font:800 1.1rem var(--display)}
button.yt-thumb{border:0;padding:0;cursor:pointer;width:100%}
.yt-thumb iframe{width:100%;height:100%;border:0}
/* Boutique */
.guide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin:18px 0}
.guide-card{display:flex;flex-direction:column;gap:6px;padding:20px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);border-top:6px solid var(--cobalt)}
.guide-card.gc-main{border-top-color:var(--red);grid-column:1/-1;background:linear-gradient(135deg,#FFF6DA,#fff)}
.guide-card.pack{border-top-color:var(--sun)}
.guide-card h2{margin:0;font-size:1.2rem}
.guide-ic{font-size:2rem}
.guide-price{font:800 1.6rem var(--display);color:var(--cobalt);margin:4px 0}
/* Points */
.points-hero{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;padding:20px;margin:16px 0;border-radius:var(--r-m);background:linear-gradient(135deg,#1E4E8C,#163B6B);color:#fff}
.points-hero .big span{font-size:1rem;font-weight:400}
.points-hero .bar{background:rgba(255,255,255,.25)}
.pt-next{min-width:240px}
.points-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pt-rules{list-style:none;padding:0;margin:0}
.pt-rules li{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line)}
.pt-rules strong{color:var(--olive)}
@media (max-width:760px){.points-grid{grid-template-columns:1fr}}
/* Avis */
.stars{color:#D0D5DD;letter-spacing:1px;font-size:1.1rem}
.stars .on{color:#F2B705}
.stars.sm{font-size:.9rem}
.rv-summary{display:flex;flex-wrap:wrap;gap:24px;align-items:center;margin:10px 0 16px}
.rv-avg{display:flex;flex-direction:column;align-items:center}
.rv-avg strong{font:800 2.4rem var(--display)}
.rv-dist{flex:1;min-width:200px}
.rv-dist div{display:grid;grid-template-columns:2.2rem 1fr 2rem;gap:8px;align-items:center;font-size:.85rem}
.rv-dist .bar{height:8px;background:var(--sky);border-radius:4px;overflow:hidden}
.rv-dist .bar span{display:block;height:100%;background:var(--sun)}
.star-pick{display:flex;gap:4px;margin:6px 0}
.star-pick button{font-size:2rem;background:none;border:0;color:#D0D5DD;cursor:pointer;padding:0 2px;transition:transform .12s ease}
.star-pick button.on{color:#F2B705}
.star-pick button:hover{transform:scale(1.15)}
.rv{padding:12px 0;border-bottom:1px solid var(--line)}
.rv header{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.rv-photos{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.rv-photos .ph{width:84px;height:84px;aspect-ratio:auto}
.rate{margin:0 0 4px}
.rate a{text-decoration:none}
.listing-page .gallery{max-width:760px}
.is-full h1{color:var(--cobalt)}
/* Groupes */
.group-chat{height:50vh}
.bname{display:block;font-size:.75rem;font-weight:700;color:var(--cobalt)}
.bubble.mine .bname{color:#fff}
.group-card{text-decoration:none;color:var(--ink)}
.chat-groups{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
/* Annulation */
.cancel-box{border-left:6px solid var(--red)}
.cx-list{list-style:none;padding:0;margin:8px 0;columns:2}
.cx-list li{padding:3px 0;color:var(--muted)}
@media (max-width:600px){.cx-list{columns:1}}
/* Newsletter */
.nl-foot{max-width:640px;margin:0 auto 14px;text-align:center}
.nl-form{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center}
.nl-form input{max-width:260px}
.nl-pop{position:fixed;right:20px;bottom:20px;z-index:3100;width:340px;max-width:calc(100vw - 24px);padding:22px;background:var(--white);border:2px solid var(--sun);border-radius:var(--r-m);box-shadow:0 20px 50px rgba(20,33,61,.25);animation:hv-rise .3s ease both}
.nl-pop .lb-close{position:absolute;top:8px;right:8px;background:var(--sky);color:var(--ink);border:0;width:32px;height:32px;border-radius:50%;font-size:1.2rem;cursor:pointer}
.nl-pop .nl-form{justify-content:flex-start}
@media (max-width:760px){.nl-pop{right:12px;bottom:84px}}
/* Administration */
.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin:16px 0}
.chart{display:flex;align-items:flex-end;gap:2px;height:140px;padding-top:8px}
.chart .col{flex:1;height:100%;display:flex;align-items:flex-end;background:var(--paper);border-radius:3px 3px 0 0}
.chart .col span{display:block;width:100%;background:var(--cobalt);border-radius:3px 3px 0 0;min-height:2px}
.chart-axis{display:flex;justify-content:space-between;margin-top:4px}
.pro-link{margin-top:14px;font-weight:700}
.door-list{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin:20px 0;background:var(--line);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}
@media (max-width:760px){.door-list{grid-template-columns:1fr}}
.city-links .chips{gap:6px}
.listing-page .contact-links{flex-direction:row;flex-wrap:wrap;gap:8px}.listing-page .contact-links .btn{width:auto}
.stat .small{display:block;margin-top:2px}.stats .stat strong{font-size:clamp(1.3rem,2.2vw,1.8rem);white-space:nowrap}
.course-card{display:flex;gap:22px;align-items:flex-start;margin:18px 0;padding:24px;border-radius:var(--r-m);background:linear-gradient(135deg,#FFF6DA 0,#fff 55%);border:2px solid var(--red);box-shadow:0 10px 26px rgba(170,21,27,.10)}
.course-flags{font-size:3.6rem;line-height:1}
.course-body{flex:1}
.course-body h2{margin:6px 0;color:var(--red)}
.course-body .actions{flex-wrap:wrap}
@media (max-width:600px){.course-card{flex-direction:column;gap:8px}}
/* v11 : Tout compris et offre de lancement */
.premium-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.plan-allin{border:2px solid var(--red);background:linear-gradient(160deg,#FFF6DA,#fff 60%);box-shadow:0 12px 30px rgba(170,21,27,.12)}
.plan-allin h2{color:var(--red)}
.launch-box{margin:14px 0;padding:18px 20px;border-radius:var(--r-m);background:linear-gradient(135deg,#FFF6DA,#fff);border:2px dashed var(--sun)}
.launch-box h2{margin:0 0 6px}
.launch-count{display:flex;flex-wrap:wrap;gap:18px}
.launch-count strong{font:800 1.6rem var(--display);color:var(--red)}
.btn.launch{background:var(--sun);border-color:var(--sun);color:var(--ink)}
/* v12 : partage et parrainage */
.share-modal{position:fixed;inset:0;z-index:4200;background:rgba(10,16,30,.55);display:grid;place-items:center;padding:16px}
.share-panel{position:relative;width:min(560px,100%);max-height:90vh;overflow:auto;background:var(--white);border-radius:20px;padding:22px;box-shadow:0 24px 60px rgba(0,0,0,.3);animation:hv-rise .2s ease both}
.share-panel h2{margin:0 0 2px}
.share-x{position:absolute;top:10px;right:12px;border:0;background:var(--sky);width:36px;height:36px;border-radius:50%;font-size:1.3rem;cursor:pointer}
.share-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:14px 0}
.share-tile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border:1px solid var(--line);border-radius:14px;background:var(--white);text-decoration:none;color:var(--ink);font:700 .85rem var(--body);cursor:pointer}
.share-tile:hover{background:var(--sky)}
.share-tile .si{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:#fff;font-size:1.2rem;font-weight:800;background:var(--cobalt)}
.s-wa .si{background:#25D366}.s-fb .si{background:#1877F2}.s-ms .si{background:#0084FF}.s-x .si{background:#111}.s-tg .si{background:#229ED9}.s-li .si{background:#0A66C2}
.s-em .si{background:#56637A}.s-sms .si{background:#2E7D32}.s-ig .si{background:linear-gradient(45deg,#F58529,#DD2A7B,#8134AF)}.s-story .si{background:linear-gradient(160deg,#7a3880,#fca848)}.s-cp .si{background:var(--sky);color:var(--cobalt)}
.share-link code{display:block;padding:8px 10px;background:var(--paper);border-radius:8px;font-size:.8rem;word-break:break-all}
.share-btn.more{background:var(--cobalt);color:#fff}
.share-fab{position:fixed;left:20px;bottom:20px;z-index:2400;border:0;border-radius:28px;padding:12px 18px;background:var(--sun);color:var(--ink);font:800 .95rem var(--body);box-shadow:0 8px 22px rgba(20,33,61,.25);cursor:pointer}
.share-fab:hover{transform:translateY(-2px)}
@media (max-width:760px){.share-fab{left:14px;bottom:84px;padding:12px 14px}.share-fab span{display:none}}
.ref-rewards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:18px 0}
.ref-reward{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:var(--r-m);background:var(--white);border:1px solid var(--line)}
.ref-reward.gold{border:2px solid var(--sun);background:linear-gradient(135deg,#FFF6DA,#fff)}
.rr-ic{font-size:1.8rem}
.big-num strong{font:800 2.2rem var(--display);color:var(--red)}
.ref-msg{padding:12px;margin:10px 0;border-left:4px solid var(--sun);background:var(--paper);border-radius:8px}
.ref-msg p{margin:0 0 8px}
.invite-card{display:flex;flex-direction:column;gap:6px;margin-top:16px;padding:16px;border-radius:var(--r-m);background:linear-gradient(135deg,#FFF6DA,#fff);border:2px solid var(--sun);text-decoration:none;color:var(--ink)}
.invite-card .progress{margin:4px 0 0}
/* v13 : articles illustrés */
.art-cover{display:block;width:100%;aspect-ratio:1200/630;object-fit:cover;border-radius:var(--r-m);margin:12px 0 18px;background:var(--sky)}
.small-cover{max-width:420px}
.article-card.has-cover{padding-top:0;overflow:hidden}
.art-thumb{width:calc(100% + 32px);margin:0 -16px 8px;aspect-ratio:1200/630;object-fit:cover;display:block}
.art-post{border-top:5px solid var(--red)}
.art-post .art-cover{margin:6px 0 10px}
.art-post-title{margin:4px 0 6px;font-size:1.3rem}
.art-post-title a{color:var(--cobalt);text-decoration:none}
.art-tag{background:#FDE9E7;color:var(--red)}
.hv-avatar{width:44px;height:44px;border-radius:50%;background:#fff;border:1px solid var(--line);padding:4px;object-fit:contain}
.react-box{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:20px 0;padding:14px 16px;border-radius:var(--r-m);background:linear-gradient(135deg,#FFF6DA,#fff);border:2px solid var(--sun);text-decoration:none;color:var(--ink)}
.cover-edit{margin:12px 0}
/* v14 : pilotage */
.tabs .tabbtn{display:inline-block;padding:7px 14px;border:1.5px solid var(--line);border-radius:20px;text-decoration:none;color:var(--ink);font-weight:700;font-size:.92rem;background:var(--white)}
.tabs .tabbtn[aria-current="page"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.member-admin li{align-items:flex-start}
.mu-main{display:flex;gap:10px;align-items:flex-start}
.mu-main p{margin:2px 0}
.ideas-summary{border-left:6px solid var(--cobalt);font-size:1.05rem}
.warn-card{border-left:6px solid var(--red)}
.variants{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:10px 0}
.variant{padding:14px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--paper)}
.variant p.small{white-space:normal}
/* v15 : vente et donnerie, annuaire, accueil, voisins */
.big-tabs .tabbtn{font-size:1rem;padding:9px 18px}
.filters{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0}
.filters label{display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:.85rem;min-width:170px;flex:1}
.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin:14px 0}
.item-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .18s ease,box-shadow .18s ease}
.item-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(20,33,61,.1)}
.item-ph{position:relative;aspect-ratio:4/3;background:var(--sky);display:grid;place-items:center;font-size:2.4rem}
.item-ph img{width:100%;height:100%;object-fit:cover}
.item-status{position:absolute;top:8px;left:8px;padding:3px 10px;border-radius:12px;font:700 .75rem var(--body);background:var(--sun);color:var(--ink)}
.item-status.st-done{background:var(--muted);color:#fff}
.item-body{display:flex;flex-direction:column;gap:3px;padding:10px 12px}
.item-price{font:800 1.15rem var(--display);color:var(--cobalt)}
.item-price.free{color:var(--olive)}
.item-price.big{font-size:1.8rem;margin:0 0 10px}
.safety{margin:18px 0;padding:12px 16px;border-left:5px solid var(--olive);background:#EEF5E8;border-radius:8px}
.safety p{margin:4px 0 0}
.seller{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.finder{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;padding:16px;margin:14px 0;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m)}
.finder label{display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:.85rem}
.pro-list{display:flex;flex-direction:column;gap:12px}
.pro-card{display:flex;gap:16px;padding:16px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m)}
.pro-card.is-full{border:2px solid var(--sun);background:linear-gradient(135deg,#FFFBEF,#fff)}
.pro-ph{flex:0 0 160px}.pro-ph img{width:160px;height:120px;object-fit:cover;border-radius:10px}
.pro-body{flex:1;min-width:0}.pro-body h3{margin:4px 0}.pro-body h3 a{color:var(--cobalt);text-decoration:none}
.pro-rate{margin:2px 0 4px}
.tag.b-official{background:#E6EEF8;color:var(--cobalt)}.tag.b-recommended{background:#EEF5E8;color:var(--olive)}.tag.b-sponsored{background:#FFF2C6;color:#8A6A00}
@media (max-width:600px){.pro-card{flex-direction:column}.pro-ph{flex:none}.pro-ph img{width:100%;height:170px}}
.home-v14{display:flex;flex-direction:column;gap:18px;margin:26px 0}
.paths{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.path{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:22px;border-radius:var(--r-m);text-decoration:none;color:var(--ink);border:1px solid var(--line);transition:transform .18s ease}
.path:hover{transform:translateY(-3px)}
.path.before{background:linear-gradient(135deg,#E6EEF8,#fff)}.path.after{background:linear-gradient(135deg,#FFF6DA,#fff)}
.path strong{font:800 1.35rem var(--display);color:var(--cobalt)}.path-ic{font-size:2.2rem}
.quick-finder,.ask-box,.city-counts{padding:18px 20px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m)}
.quick-finder h2,.ask-box h2,.city-counts h2{margin:0 0 10px;font-size:1.2rem}
.qf-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.qf-row select,.qf-row input{width:auto;min-width:150px;flex:1}
.ask-box{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;border-left:6px solid var(--sun)}.ask-box p{margin:0}
@media (max-width:700px){.paths{grid-template-columns:1fr}}
.amb-card{display:flex;gap:12px;align-items:center;padding:14px;margin-bottom:14px;border-radius:var(--r-m);background:linear-gradient(135deg,#EEF5E8,#fff);border:2px solid var(--olive)}
.amb-card p{margin:0}.amb-card .btn{margin-top:6px}
.near-card{padding:14px;margin-bottom:14px;border-radius:var(--r-m);background:var(--white);border:1px solid var(--line)}
.near-card h3{margin:0 0 6px}.near-card p{margin:0 0 8px}
.version-banner{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:5000;display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--ink);color:#fff;border-radius:30px;box-shadow:0 10px 30px rgba(0,0,0,.3);animation:hv-rise .3s ease both}
/* v16 : réseaux, connexion, légal, export, questions */
.member-social{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.ms-btn{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#fff;text-decoration:none;font:800 .9rem var(--body);transition:transform .15s ease}
.ms-btn:hover{transform:scale(1.1)}
.ms-instagram{background:linear-gradient(45deg,#F58529,#DD2A7B,#8134AF)}.ms-facebook{background:#1877F2}.ms-tiktok{background:#111}.ms-linkedin{background:#0A66C2}.ms-youtube{background:#FF0000}.ms-whatsapp{background:#25D366}.ms-website{background:var(--cobalt)}
.oauth{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.oauth-or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.9rem;margin:6px 0}.oauth-or::before,.oauth-or::after{content:"";flex:1;height:1px;background:var(--line)}
.oauth-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:var(--white)}
.oa-ic{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;color:#fff;font-weight:800}.oauth-btn.g .oa-ic{background:#4285F4}.oauth-btn.fb .oa-ic{background:#1877F2}
.legal h2{margin-top:1.4em;font-size:1.15rem}.legal li{margin-bottom:6px}
mark.todo{background:#FFE08A;padding:0 4px;border-radius:4px}
.legal-nav{margin-top:28px;font-size:.9rem}.legal-links{font-size:.88rem}
.export-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin:12px 0}
.q-tag{background:#FFF2C6;color:#8A6A00}.pin-tag{font-size:.8rem;font-weight:700;color:var(--red);margin:0 0 4px}
.q-body{font:700 1.15rem var(--display)}
.poll{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.poll-opt{text-align:left;padding:10px 14px;border:2px solid var(--line);border-radius:10px;background:var(--white);font:inherit;cursor:pointer}
.poll-opt:hover{border-color:var(--cobalt);background:var(--sky)}
.poll-res{position:relative;display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border-radius:10px;background:var(--paper);overflow:hidden}
.poll-res .poll-bar{position:absolute;left:0;top:0;bottom:0;background:#DCE8F5;z-index:0}.poll-res.mine .poll-bar{background:#FFE9A8}
.poll-res span,.poll-res strong{position:relative;z-index:1}
.qweek{display:flex;flex-direction:column;gap:8px;margin:0 0 22px;padding:16px 18px;border-radius:var(--r-m);background:linear-gradient(135deg,#FFF6DA,#fff);border:2px solid var(--sun);text-decoration:none;color:var(--ink)}
.qweek strong{font:700 1.1rem var(--display)}.qweek .btn{align-self:flex-start}.qw-tag{font-size:.8rem;font-weight:800;color:#8A6A00}
