/* Weworld v29 : refonte 360. Une couche de design unique, chargée en dernier :
   en-tête plus clair, largeur de lecture constante, cartes et onglets homogènes,
   focus visible, accessibilité (contraste, animations réduites) et composants des nouvelles pages. */

/* ----- En-tête : sélecteur ME · WE · WORLD en pilule ----- */
.top{border-bottom:1px solid var(--line)}
@media (min-width:901px){
  #rail{top:calc(env(safe-area-inset-top,0px) + (var(--top) - 2.75rem) / 2)!important;height:2.75rem!important;gap:.25rem!important;padding:.25rem!important;border-radius:999px!important;background:var(--surface)!important;box-shadow:inset 0 0 0 1px var(--line)!important}
  #rail a[data-app]::before{display:none!important}
  #rail a[data-app]{height:100%!important;padding:0 1.05rem!important;border-radius:999px;gap:.5rem!important;color:var(--ink-2);font-weight:700;transition:background .15s,color .15s}
  #rail a[data-app]:hover{background:var(--bg)}
  #rail a[data-app][aria-current="page"]{background:var(--c);color:#FFFFFF;box-shadow:0 2px 10px rgba(0,0,0,.14)}
  #rail a[data-app] span{flex-direction:row!important;align-items:center}
  /* Sous-menu : moins de bruit, pastilles discrètes vers les deux autres applications */
  .subnav-sib a{align-self:center;padding:.18rem .55rem!important;border-width:1px!important;font-size:max(.68rem,10px)!important;height:auto!important;min-width:0!important}
  .subnav-sib a::before{content:"→ ";font-weight:600}
  .subnav-k small{max-width:13rem}
}
@media (min-width:901px) and (max-width:1250px){.subnav-k small{display:none}}

/* ----- Largeur de lecture constante sur les pages de contenu ----- */
body:is([data-page="aujourdhui"],[data-page="vie"],[data-page="me"],[data-page="cartes"],[data-page="entraide"],[data-page="defis"],[data-page="recap"],[data-page="fil"],[data-page="reseau"],[data-page="impact"],[data-page="projets"],[data-page="services"],[data-page="savoirs"],[data-page="profil"],[data-page="notifications"],[data-page="recherche"],[data-page="inviter"],[data-page="confiance"],[data-page="principes"],[data-page="compte"],[data-page="membre"],[data-page="organisation"]) #view{max-width:1240px;margin-inline:auto}
body[data-page="espace"]:not(.es-full) #view{max-width:1240px;margin-inline:auto}

/* ----- Titres de page ----- */
.ph h1{font-weight:800;letter-spacing:-.015em;font-size:clamp(1.55rem,1.1rem + 1.2vw,2.15rem);line-height:1.15}
.ph p{color:var(--muted);max-width:44rem}

/* ----- Cartes homogènes : bordure simple, coins arrondis, ombre au survol ----- */
.box{border:1px solid var(--line-2)!important;border-radius:16px!important;box-shadow:none}
.box:hover{box-shadow:none}

/* ----- Onglets en pilules, défilants sur mobile ----- */
nav.tabs{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;border-bottom:0!important;padding:.15rem 0 .7rem;margin-bottom:.6rem}
nav.tabs::-webkit-scrollbar{display:none}
nav.tabs a{flex:none;padding:.5rem .95rem!important;border:1px solid var(--line-2)!important;border-radius:999px!important;color:var(--ink-2);font-weight:600;text-decoration:none;white-space:nowrap;margin:0!important}
nav.tabs a:hover{background:var(--surface)}
nav.tabs a[aria-current="page"]{background:var(--ink);border-color:var(--ink)!important;color:var(--bg)}
nav.tabs a::after{display:none!important}
@media (max-width:900px){nav.tabs,.subnav-m{-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}}

/* ----- Boutons et puces ----- */
.btn{min-height:2.5rem;border-radius:999px}
.btn.s{min-height:2.1rem}
.chip{border-radius:999px}
kbd{display:inline-block;min-width:1.4em;padding:.05rem .4rem;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:6px;background:var(--surface);font:600 .82em/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center}

/* ----- Focus visible et lien d'évitement ----- */
:focus-visible{outline:3px solid var(--app,#0B5D49)!important;outline-offset:2px}
.rf-skip{position:fixed;left:.75rem;top:-4rem;z-index:100;padding:.6rem 1rem;border:0;border-radius:999px;background:var(--ink);color:var(--bg);font-weight:700;transition:top .15s}
.rf-skip:focus{top:.75rem}

/* ----- Transition douce au changement de page ----- */
@keyframes rfIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
body.rf-enter #view{animation:rfIn .24s ease-out}

/* ----- Accessibilité ----- */
html.ux-contrast{--muted:#3D3D3D;--ink-2:#1F1F1F;--ink:#000000;--line:#8C8C8C;--line-2:#6E6E6E}
html.ux-contrast[data-theme="dark"]{--muted:#D6D6D6;--ink-2:#EDEDED;--ink:#FFFFFF;--line:#9A9A9A;--line-2:#B3B3B3}
@media (prefers-color-scheme:dark){html.ux-contrast:not([data-theme="light"]){--muted:#D6D6D6;--ink-2:#EDEDED;--ink:#FFFFFF;--line:#9A9A9A;--line-2:#B3B3B3}}
html.ux-contrast a{text-decoration:underline}
html.ux-calm *,html.ux-calm *::before,html.ux-calm *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* ----- Hors ligne ----- */
.rf-off{position:fixed;left:50%;bottom:calc(5.2rem + env(safe-area-inset-bottom,0px));z-index:60;transform:translateX(-50%);padding:.55rem 1rem;border-radius:999px;background:#222222;color:#FFFFFF;font-size:.86rem;box-shadow:0 6px 18px rgba(0,0,0,.2)}
@media (min-width:901px){.rf-off{bottom:1.2rem}}

/* ----- Créer ----- */
.rf-cg{margin:1rem 0 0}
.rf-ck{margin:0 0 .45rem;color:var(--c);font:800 .78rem/1.2 var(--ui);letter-spacing:.06em}
.rf-cl{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(14rem,100%),1fr));gap:.5rem}
.rf-ci{display:grid;grid-template-columns:2.2rem 1fr;grid-template-rows:auto auto;gap:0 .6rem;align-items:center;padding:.7rem .8rem;border:1px solid var(--line-2);border-radius:14px;background:var(--bg);color:var(--ink);text-align:left;cursor:pointer}
.rf-ci:hover{border-color:var(--c);box-shadow:0 4px 14px rgba(0,0,0,.08)}
.rf-ci span{grid-row:1/3;display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:10px;background:var(--surface);font-size:1.15rem}
.rf-ci b{font-size:.95rem}.rf-ci small{color:var(--muted);font-size:.8rem;line-height:1.3}
.rf-kbd{margin-top:1rem}

/* ----- Segments Entraide / Défis ----- */
.rf-seg{display:inline-flex;gap:.25rem;margin:.2rem 0 1rem;padding:.25rem;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.rf-seg a{padding:.45rem 1rem;border-radius:999px;color:var(--ink-2);font-weight:700;font-size:.9rem;text-decoration:none}
.rf-seg a[aria-current="page"]{background:var(--app-we,#0F7C8C);color:#FFFFFF}

/* ----- Défis ----- */
.rf .ph .btn{flex:none}
.rf-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem;margin:0 0 1.2rem}
.rf-kpis div{display:flex;flex-direction:column;padding:.9rem 1rem;border:1px solid var(--line-2);border-radius:14px;background:var(--bg)}
.rf-kpis b{font:800 1.5rem/1.1 var(--ui);font-variant-numeric:tabular-nums}.rf-kpis span{color:var(--muted);font-size:.84rem}
.rf-h2{margin:1.2rem 0 .7rem;font:800 1.15rem/1.2 var(--ui)}
.rf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(19rem,100%),1fr));gap:.9rem}
.rf-df{display:flex;flex-direction:column;gap:.6rem;padding:1rem 1.1rem;border:1px solid var(--line-2);border-radius:16px;background:var(--bg)}
.rf-df:hover{box-shadow:0 6px 16px rgba(0,0,0,.08)}
.rf-df-h{display:flex;gap:.75rem;align-items:center;color:var(--ink);text-decoration:none}
.rf-df-h > span:last-child{display:flex;flex-direction:column;min-width:0}.rf-df-h b{font-size:1rem}.rf-df-h small{color:var(--muted)}
.rf-df-i{display:grid;flex:none;place-items:center;width:2.6rem;height:2.6rem;border-radius:12px;background:var(--surface);font-size:1.3rem}
.rf-df-i.big{width:4rem;height:4rem;border-radius:18px;font-size:2rem}
.rf-df p{margin:0}
.rf-df-f{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-top:auto}
.rf-dhero{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin:.8rem 0 1rem;padding:1.2rem 1.3rem;border-radius:20px;background:linear-gradient(135deg,color-mix(in srgb,var(--app-we,#0F7C8C) 14%,var(--bg)),var(--bg));border:1px solid var(--line-2)}
.rf-dhero > div:nth-child(2){flex:1 1 18rem}.rf-dhero h1{margin:0 0 .25rem;font:800 clamp(1.35rem,1rem + 1vw,1.9rem)/1.2 var(--ui)}.rf-dhero p{margin:0 0 .25rem}
.rf-dact{display:flex;flex-wrap:wrap;gap:.5rem}
.rf-me{margin-bottom:1rem}.rf-me-t{display:flex;justify-content:space-between;margin-bottom:.4rem}
.rf-board{margin:.4rem 0 0;padding:0;list-style:none}
.rf-board li{display:grid;grid-template-columns:2rem minmax(0,1fr) auto auto;gap:.6rem;align-items:center;padding:.5rem .3rem;border-bottom:1px solid var(--line)}
.rf-board li:last-child{border:0}
.rf-board li.me{background:color-mix(in srgb,var(--app-we,#0F7C8C) 10%,transparent);border-radius:10px}
.rf-rank{text-align:center;font-weight:800}.rf-who{display:flex;flex-direction:column;min-width:0}.rf-who b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-who small{color:var(--muted)}
.rf-val{font-variant-numeric:tabular-nums;font-weight:700}
.rf-kudo{padding:.2rem .55rem;border:1px solid var(--line-2);border-radius:999px;background:var(--bg);font-size:.8rem;cursor:pointer}
.rf-kudo.on{border-color:var(--app-we,#0F7C8C);background:color-mix(in srgb,var(--app-we,#0F7C8C) 12%,var(--bg));font-weight:700}
.rf-wf{display:flex;gap:.5rem;margin:.5rem 0}.rf-wf input{flex:1;min-width:0;padding:.55rem .8rem;border:1px solid var(--line-2);border-radius:999px;background:var(--bg);color:var(--ink)}
.rf-wm{margin:.45rem 0;font-size:.9rem}

/* ----- Récap de la semaine ----- */
.rf-hero{margin:0 0 1rem;padding:1.4rem 1.5rem;border-radius:22px;background:linear-gradient(120deg,#0B5D49,#0F7C8C 55%,#2A9D78);color:#FFFFFF}
.rf-hero h2{margin:.2rem 0 1rem;font:800 clamp(1.3rem,1rem + 1vw,1.9rem)/1.2 var(--ui)}
.rf-kick{margin:0;font:700 .78rem/1.2 var(--ui);letter-spacing:.08em;text-transform:uppercase;opacity:.85}
.rf-big{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.75rem}
.rf-big div{display:flex;flex-direction:column;padding:.8rem .9rem;border-radius:14px;background:rgba(255,255,255,.14)}
.rf-big b{font:800 1.6rem/1.1 var(--ui)}.rf-big span{font-size:.84rem;opacity:.9}
.rf-tri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;margin:0 0 1rem}
.rf-panel{display:flex;flex-direction:column;gap:.15rem;padding:1.1rem 1.2rem;border:1px solid var(--line-2);border-top:4px solid var(--c);border-radius:16px;background:var(--bg)}
.rf-pk{margin:0 0 .3rem;color:var(--c);font:800 .76rem/1.2 var(--ui);letter-spacing:.06em}
.rf-n{font:800 2rem/1.1 var(--ui);font-variant-numeric:tabular-nums}.rf-panel > span{color:var(--muted)}
.rf-panel ul{margin:.6rem 0;padding-left:1.1rem;font-size:.9rem}.rf-panel .lnk-b{margin-top:auto}
.rf-sugg{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.6rem;margin-top:.6rem}
.rf-s{display:grid;grid-template-columns:2rem 1fr;gap:0 .6rem;padding:.75rem .85rem;border:1px solid var(--line-2);border-radius:14px;color:var(--ink);text-decoration:none}
.rf-s span{grid-row:1/3;font-size:1.3rem}.rf-s small{color:var(--muted)}.rf-s:hover{box-shadow:0 4px 14px rgba(0,0,0,.08)}
.rf-mini{display:flex;flex-direction:column;gap:.45rem;margin:0 0 1rem;padding:.85rem .95rem;border:1px solid var(--line-2);border-radius:14px;background:var(--bg)}
.rf-mini .rf-pk{color:var(--app-we,#0F7C8C)}
.rf-mini a{display:flex;flex-direction:column;gap:.3rem;color:var(--ink);text-decoration:none;font-size:.9rem}

/* ----- Confiance ----- */
.rf-tc{display:flex;flex-direction:column;gap:.3rem;padding:1rem;border:1px solid var(--line-2);border-radius:16px;background:var(--bg)}
.rf-tc span{font-size:1.5rem}.rf-tc p{margin:0}
.rf-steps,.rf-tips{margin:.5rem 0;padding-left:1.2rem}.rf-steps li,.rf-tips li{margin:.35rem 0}
.rf-keys{width:100%;border-collapse:collapse;margin-top:.6rem}.rf-keys td{padding:.45rem .3rem;border-bottom:1px solid var(--line)}
.rf-a11y .field{margin-bottom:.8rem}

@media (max-width:900px){.rf-tri{grid-template-columns:1fr}.rf-board li{grid-template-columns:1.6rem minmax(0,1fr) auto}.rf-board li .rf-kudo,.rf-board li > span:last-child:empty{grid-column:2/4;justify-self:start}}
.vgrid > *,.rf-grid > *,.rf-tri > *{min-width:0}
.rf-back{margin:0 0 .2rem}
.rf-seg{max-width:100%;overflow-x:auto}
.rf-seg a{white-space:nowrap}

/* ===== v30 : espace d'organisation, comptes et photos ===== */
.av-ph,.so-av-ph{overflow:hidden;background:var(--surface)!important;padding:0}
.av-ph img,.so-av-ph img,#t-av img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
#t-av{overflow:hidden}
.so-av-ph{position:relative}.so-av-ph .so-on{z-index:1}
.es-logo-img{overflow:hidden;padding:0;background:#FFFFFF!important}.es-logo-img img{width:100%;height:100%;object-fit:cover;display:block}
.pf-b,.pf6-b{position:relative}
.om-phb{position:absolute;left:4.2rem;top:.6rem;display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--bg);box-shadow:0 2px 8px rgba(0,0,0,.2);cursor:pointer;font-size:1rem;z-index:2}
.oz-steps{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0 1rem;padding:0;list-style:none}
.oz-steps li{display:flex;align-items:center;gap:.35rem;padding:.3rem .7rem .3rem .3rem;border:1px solid var(--line-2);border-radius:999px;color:var(--muted);font-size:.82rem;font-weight:600}
.oz-steps li span{display:grid;place-items:center;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--surface);font-size:.75rem}
.oz-steps li.on{border-color:var(--ink);color:var(--ink)}.oz-steps li.on span{background:var(--ink);color:var(--bg)}
.oz-steps li.ok span{background:#0B5D49;color:#FFFFFF}
.oz-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.5rem}
.oz-type{position:relative;display:flex;flex-direction:column;gap:.2rem;padding:.7rem;border:1px solid var(--line-2);border-radius:14px;cursor:pointer}
.oz-type input{position:absolute;opacity:0}.oz-type span{font-size:1.4rem}.oz-type b{font-size:.88rem}
.oz-type:has(input:checked){border-color:#0B5D49;box-shadow:0 0 0 2px #0B5D49}
.oz-type:has(input:focus-visible){outline:3px solid #0B5D49}
.oz-logo{display:flex;gap:.9rem;align-items:center;margin:.8rem 0}
.oz-logo b{display:block}.oz-logo p{margin:.1rem 0 .4rem}
.oz-lprev{display:grid;flex:none;place-items:center;width:4.2rem;height:4.2rem;border-radius:16px;overflow:hidden;background:var(--surface);color:#FFFFFF;font:800 1.5rem/1 var(--ui)}
.oz-lprev img{width:100%;height:100%;object-fit:cover}
.om-mprev,.om-me{border-radius:50%;color:var(--ink-2);font-size:1.4rem}.om-me{background:#0B5D49;color:#FFFFFF}
.oz-cols{display:flex;gap:.5rem}.oz-cols label{position:relative;cursor:pointer}.oz-cols input{position:absolute;opacity:0}
.oz-cols span{display:block;width:2rem;height:2rem;border-radius:50%;border:3px solid transparent}
.oz-cols input:checked + span{border-color:var(--ink)}
.oz-acc{display:flex;flex-direction:column;gap:.45rem}
.oz-a{display:flex;gap:.6rem;align-items:flex-start;padding:.6rem .7rem;border:1px solid var(--line-2);border-radius:12px;cursor:pointer}
.oz-a span{display:flex;flex-direction:column}.oz-a small{color:var(--muted)}
.oz-a:has(input:checked){border-color:#0B5D49;background:color-mix(in srgb,#0B5D49 6%,var(--bg))}
.oz-frame{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:.4rem 0 .8rem}
.oz-frame > div{padding:.8rem .9rem;border:1px solid var(--line-2);border-radius:14px}
.oz-frame ul{margin:.4rem 0 0;padding-left:1.1rem;font-size:.88rem}
.oz-sum{margin-top:.8rem;padding:.7rem .9rem;border-radius:12px;background:var(--surface)}.oz-sum p{margin:.2rem 0 0}
.oz-nav{margin-top:1rem}
.om-what{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:1rem 0}
.om-what > div{padding:.9rem 1rem;border:1px solid var(--line-2);border-radius:14px;background:var(--bg)}.om-what p{margin:.3rem 0 0}
.om-head{display:flex;gap:1rem;align-items:flex-start;margin-bottom:16px}.om-head .es-logo{flex:none;width:3.6rem;height:3.6rem;font-size:1.4rem}
.om-head p{margin:.3rem 0}.om-priv ul{margin:.4rem 0;padding-left:1.1rem}
.om-start{margin-bottom:16px;border-color:#0B5D49!important}
.es-mname{display:flex;align-items:center;gap:.5rem}.es-mname > span:last-child{display:flex;flex-direction:column}.es-mname small{color:var(--muted)}
.es-macts{display:flex;gap:.35rem;flex-wrap:wrap}
.om-link,.rf-json{width:100%;padding:.6rem .7rem;border:1px solid var(--line-2);border-radius:10px;background:var(--bg);color:var(--ink);font:.82rem/1.4 ui-monospace,Menlo,monospace}
.rf-json{min-height:14rem;resize:vertical}
.om-acct{margin-bottom:1.1rem}
@media (max-width:700px){.oz-frame,.om-what{grid-template-columns:1fr}.om-phb{left:3.4rem}}
.oz-needs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr));gap:.45rem;margin-bottom:.3rem}
.om-conn{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(17rem,100%),1fr));gap:.8rem}
.om-c{display:flex;flex-direction:column;gap:.5rem}.om-c header{display:flex;gap:.7rem;align-items:center}.om-c header > div{display:flex;flex-direction:column}
.om-c ul{margin:0;padding-left:1.1rem;font-size:.88rem}.om-c .actions{margin-top:auto}
.om-c.on{border-color:#0B5D49!important}
.om-ci{display:grid;flex:none;place-items:center;width:2.5rem;height:2.5rem;border-radius:12px;color:#FFFFFF;font:800 .9rem/1 var(--ui)}
.om-scopes{margin:.4rem 0;padding-left:0;list-style:none}.om-scopes li{margin:.3rem 0}
.om-demo{margin:.6rem 0;padding:.55rem .7rem;border:1px dashed var(--line-2);border-radius:10px;background:var(--surface);font-size:.85rem}
.om-xs{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:0 0 12px;padding:.55rem .7rem;border:1px solid var(--line-2);border-radius:12px;background:var(--bg)}
.om-xc{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .5rem .15rem .2rem;border:1px solid var(--line-2);border-radius:999px;font-size:.8rem;color:var(--muted)}
.om-xc i{display:grid;place-items:center;width:1.3rem;height:1.3rem;border-radius:50%;color:#FFFFFF;font:800 .6rem/1 var(--ui);font-style:normal}
.om-xc.on{color:var(--ink);border-color:#0B5D49}
.oz-a input{flex:none;width:1.1rem!important;height:1.1rem!important;min-height:0!important;margin:.2rem 0 0!important;padding:0!important;accent-color:#0B5D49}
.oz-a b{font-size:.9rem}
