:root{--ink:#17392d;--muted:#697872;--cream:#f7f0e7;--paper:#fff;--coral:#e96d3a;--coral-dark:#c85a2e;--mint:#7fa98a;--mint-pale:#eaf3ec;--yellow:#f4b942;--line:#ece3d6;--shadow:0 18px 50px rgba(23,57,45,.12);--radius:28px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:#fff;padding:32px 24px 24px;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:20;overflow-y:auto;scrollbar-width:thin}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font:800 25px 'Baloo 2';text-decoration:none;margin:0 10px 52px}.brand-mark{background:var(--coral);color:#fff;width:33px;height:33px;border-radius:11px 11px 11px 4px;display:grid;place-items:center;font-size:23px}.desktop-nav{display:grid;gap:8px}.nav-item{border:0;background:none;color:#75817d;display:flex;align-items:center;gap:14px;font:600 15px 'DM Sans';padding:13px 14px;border-radius:18px;cursor:pointer;text-align:left}.nav-item svg{width:20px}.nav-item.active,.nav-item:hover{background:#fff0eb;color:var(--coral-dark)}.badge{margin-left:auto;background:var(--coral);color:#fff;border-radius:8px;padding:1px 6px;font-size:11px}.safety-card{margin-top:auto;background:var(--mint-pale);padding:16px;border-radius:18px;display:flex;gap:11px}.safety-card svg{min-width:21px;color:#2f8b75}.safety-card strong{font-size:12px}.safety-card p{font-size:10px;line-height:1.5;margin:4px 0;color:var(--muted)}.user-mini{display:flex;align-items:center;gap:10px;padding:18px 5px 0}.user-mini img,.top-actions img{width:38px;height:38px;object-fit:cover;border-radius:50%}.user-mini div{display:grid;font-size:12px}.user-mini small{color:var(--muted)}.user-mini button{margin-left:auto;border:0;background:none}main{margin-left:260px;max-width:1500px}.view{display:none}.view.active{display:block}.topbar{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw}.location-pill{background:#fff;border:1px solid var(--line);border-radius:14px;padding:9px 14px;display:flex;align-items:center;gap:10px;color:var(--ink)}.location-pill>span:nth-child(2){display:grid;text-align:left}.location-pill small{color:var(--muted);font-size:9px}.location-pill strong{font-size:12px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.top-actions{display:flex;align-items:center;gap:14px}.icon-button{width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:18px;display:grid;place-items:center;position:relative;color:var(--ink);cursor:pointer}.icon-button i{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--coral);right:9px;top:8px}.hero{margin:0 5vw 70px;background:#f3e4d2;min-height:440px;border-radius:30px;display:grid;grid-template-columns:48% 52%;overflow:hidden}.hero-copy{padding:64px 38px 48px 6%;position:relative;z-index:1}.eyebrow{font:800 10px 'Baloo 2';letter-spacing:2px;color:#997463}.eyebrow.coral{color:var(--coral)}.eyebrow.mint{color:#298b75}.hero h1,.page-head h1,.create-header h1{font:800 clamp(34px,4vw,59px)/1.06 'Baloo 2';margin:17px 0 20px;letter-spacing:-2.5px}.hero h1 em{font-family:Georgia,serif;color:var(--coral);font-weight:400}.hero p{font-size:15px;line-height:1.65;color:#54645f;max-width:520px}.hero-actions{display:flex;gap:24px;align-items:center;margin-top:31px}.primary,.secondary{border:0;border-radius:18px;padding:15px 20px;font:700 13px 'DM Sans';cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:12px}.primary{background:var(--coral);color:#fff;box-shadow:0 9px 22px rgba(233,109,58,.25)}.primary:hover{background:var(--coral-dark);transform:translateY(-1px)}.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.link-button,.text-link,.back-button{border:0;background:none;font:700 12px 'DM Sans';color:var(--ink);display:flex;gap:8px;align-items:center;cursor:pointer}.hero-visual{position:relative;min-width:0}.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f3e4d2 0%,transparent 25%)}.hero-visual img{width:100%;height:100%;object-fit:cover}.floating-card{position:absolute;z-index:2;left:12%;bottom:29px;background:#fff;padding:13px 16px;border-radius:14px;box-shadow:var(--shadow);display:flex;align-items:center;gap:10px;font-size:11px}.floating-card div{display:grid}.floating-card small{color:var(--muted);margin-top:3px}.pulse{width:9px;height:9px;background:#4bb99e;border-radius:50%;box-shadow:0 0 0 5px #d9f2eb}.section-heading{margin:0 5vw 22px;display:flex;align-items:end;justify-content:space-between}.section-heading h2{font:800 26px 'Baloo 2';margin:8px 0 0;letter-spacing:-1px}.activity-grid{margin:0 5vw 70px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.activity-card{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 7px 24px rgba(24,51,45,.06);cursor:pointer;transition:.25s}.activity-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.card-image{height:175px;position:relative;overflow:hidden;background:#dde8e5}.card-image img{width:100%;height:100%;object-fit:cover}.category{position:absolute;left:12px;top:12px;background:rgba(255,255,255,.94);padding:6px 9px;border-radius:8px;font-size:9px;font-weight:800;letter-spacing:1px}.save{position:absolute;right:12px;top:12px;border:0;background:rgba(255,255,255,.94);border-radius:50%;width:31px;height:31px;display:grid;place-items:center;color:var(--ink)}.card-body{padding:17px}.when{color:var(--coral-dark);font-size:10px;font-weight:800;letter-spacing:.7px}.card-body h3{font:800 17px/1.25 'Baloo 2';margin:7px 0}.meta{display:flex;gap:13px;color:var(--muted);font-size:11px;margin:10px 0}.meta span{display:flex;align-items:center;gap:5px}.card-footer{display:flex;align-items:center;padding-top:13px;border-top:1px solid var(--line)}.avatars{display:flex}.avatars img{width:28px;height:28px;border-radius:50%;border:2px solid #fff;object-fit:cover;margin-right:-8px}.spots{font-size:10px;color:var(--muted);margin-left:14px}.spots strong{color:var(--ink)}.trust{margin-left:auto;color:#299278;font-size:9px;font-weight:800;display:flex;gap:4px}.idea-banner{margin:0 5vw 70px;background:var(--ink);color:#fff;border-radius:22px;padding:32px 38px;display:grid;grid-template-columns:auto 1fr auto;gap:25px;align-items:center}.idea-icon{width:58px;height:58px;border-radius:18px;background:var(--yellow);color:var(--ink);display:grid;place-items:center}.idea-banner h3{font:800 21px 'Baloo 2';margin:6px 0}.idea-banner p{margin:0;color:#adc1bb;font-size:12px}.weekend-strip{margin:0 5vw 80px;display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.weekend-card{height:215px;border-radius:22px;overflow:hidden;position:relative;color:#fff;cursor:pointer}.weekend-card img{width:100%;height:100%;object-fit:cover}.weekend-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,29,25,.86),transparent 70%)}.weekend-card div{position:absolute;left:22px;bottom:20px;z-index:1}.weekend-card h3{font:800 20px 'Baloo 2';margin:5px 0}.page-view{padding:60px 6vw 100px;min-height:100vh;background:#fff}.page-head{display:flex;justify-content:space-between;align-items:center}.page-head h1,.create-header h1{font-size:42px;margin:9px 0 30px}.search-box{background:#f6f5f1;border-radius:16px;display:flex;align-items:center;padding:5px 5px 5px 17px;max-width:760px}.search-box input{border:0;outline:0;background:transparent;padding:15px;width:100%;font:500 14px 'DM Sans'}.search-box button{border:0;border-radius:12px;background:var(--ink);color:#fff;padding:13px 18px}.chips{display:flex;gap:9px;flex-wrap:wrap;margin:24px 0 35px}.chip{border:1px solid var(--line);background:#fff;border-radius:22px;padding:9px 14px;color:var(--muted)}.chip.active{background:var(--mint-pale);border-color:var(--mint);color:var(--ink)}.result-meta{display:flex;gap:8px;margin-bottom:18px}.result-meta span{color:var(--muted)}.explore-grid{margin:0;grid-template-columns:repeat(3,1fr)}.back-button{margin-bottom:30px}.detail-hero{height:390px;border-radius:25px;overflow:hidden;position:relative}.detail-hero img{width:100%;height:100%;object-fit:cover}.detail-grid{display:grid;grid-template-columns:1fr 330px;gap:60px;max-width:1050px;margin:35px auto}.detail-copy h1{font:800 40px/1.1 'Baloo 2';letter-spacing:-1.5px;margin:10px 0}.detail-copy>p{color:var(--muted);line-height:1.7}.detail-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin:30px 0}.fact{display:flex;gap:12px;padding:15px;border:1px solid var(--line);border-radius:14px}.fact div{display:grid}.fact small{color:var(--muted)}.organizer{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:25px}.organizer img{width:52px;height:52px;border-radius:50%}.join-card{border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:var(--shadow);height:max-content;position:sticky;top:25px}.join-card .price{font-size:12px;color:var(--muted)}.join-card h3{font:800 22px 'Baloo 2';margin:6px 0}.seat-bar{height:7px;background:#eee;border-radius:5px;margin:18px 0}.seat-bar span{display:block;width:70%;height:100%;background:var(--mint);border-radius:5px}.join-card .primary{width:100%;margin-top:16px}.create-view{background:#fdfbf8}.create-header{text-align:center;max-width:650px;margin:auto}.create-header p{color:var(--muted)}#create-form{background:#fff;max-width:700px;margin:30px auto;padding:35px;border-radius:24px;box-shadow:var(--shadow)}.progress{display:flex;gap:7px;margin-bottom:30px}.progress span{height:4px;flex:1;background:#eee;border-radius:5px}.progress .active{background:var(--coral)}.field-label,#create-form label{display:grid;gap:8px;font-weight:700;font-size:12px;margin:16px 0}.template-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.template{border:1px solid var(--line);background:#fff;border-radius:18px;padding:12px 5px;display:grid;gap:5px;place-items:center;font-size:20px}.template span{font-size:10px}.template.active{background:#fff0eb;border-color:var(--coral)}input,textarea,select{border:1px solid var(--line);border-radius:12px;padding:14px;font:500 13px 'DM Sans';outline:none;background:#fff}input:focus,textarea:focus,select:focus{border-color:var(--coral)}textarea{min-height:90px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px}.message-layout{display:grid;grid-template-columns:320px 1fr;border:1px solid var(--line);height:690px;border-radius:22px;overflow:hidden}.conversation-list{border-right:1px solid var(--line)}.conversation{display:flex;gap:12px;padding:18px;border-bottom:1px solid var(--line);cursor:pointer}.conversation.active{background:var(--mint-pale)}.conversation img{width:48px;height:48px;border-radius:15px;object-fit:cover}.conversation div{display:grid;gap:4px}.conversation small{color:var(--muted)}.chat{display:grid;grid-template-rows:auto auto 1fr auto}.chat-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.chat-head div{display:grid}.chat-head small{color:var(--muted)}.important{margin:15px 22px 0;background:#fff8df;padding:12px;border-radius:12px;display:flex;gap:10px}.important p{margin:3px 0;font-size:11px}.chat-body{padding:25px;overflow:auto;background:#fafaf8}.day{text-align:center;color:var(--muted);font-size:9px;margin-bottom:20px}.bubble{max-width:65%;padding:12px 15px;border-radius:15px;background:#fff;margin:10px 0;display:grid;font-size:13px;line-height:1.5}.bubble b{font-size:10px;color:var(--coral);margin-bottom:3px}.bubble small{text-align:right;color:var(--muted);font-size:9px}.bubble.mine{margin-left:auto;background:var(--ink);color:#fff}.message-compose{display:flex;gap:8px;padding:13px;border-top:1px solid var(--line)}.message-compose input{flex:1}.message-compose button{border:0;background:var(--coral);color:#fff;width:42px;border-radius:12px}.message-compose button:first-child{background:#f3f2ef;color:var(--ink)}.profile-cover{height:200px;background:linear-gradient(120deg,#f4b942,#e9946a 55%,#7fa98a);border-radius:25px}.profile-main{max-width:800px;margin:-55px auto 0}.profile-intro{display:flex;align-items:end;gap:20px}.avatar-edit{position:relative;flex:none}.avatar-edit img{width:130px;height:130px;border-radius:35px;border:6px solid #fff;object-fit:cover;display:block}.avatar-upload-btn{position:absolute;right:-6px;bottom:-6px;width:38px;height:38px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;cursor:pointer;border:3px solid #fff;box-shadow:0 4px 10px rgba(23,57,45,.25)}.avatar-upload-btn:hover{background:var(--coral-dark)}.avatar-upload-btn svg{width:16px;height:16px}
.choice-card>span svg{width:22px;height:22px;color:var(--ink)}
.section-icon{width:18px!important;height:18px!important;vertical-align:-4px;color:var(--coral-dark);margin-right:2px}
.mode-choice{grid-template-columns:repeat(2,1fr)}
/* Refonte du formulaire de création (audit produit 17/07) : détails avancés repliés par défaut au lieu d'une longue page unique. */
.advanced-options{border:1px solid var(--line);border-radius:18px;margin:30px 0;background:#fdfbf8}
.advanced-options summary{list-style:none;cursor:pointer;padding:18px 20px;display:flex;align-items:center;gap:4px 12px;flex-wrap:wrap}
.advanced-options summary::-webkit-details-marker{display:none}
.advanced-options summary>span:first-child{font-weight:800;font-size:14px}
.advanced-options summary>small{color:var(--muted);font-size:11px;flex:1 1 auto}
.details-chevron{width:16px!important;height:16px!important;transition:transform .2s;flex:none}
.advanced-options[open] .details-chevron{transform:rotate(180deg)}
.advanced-options-body{padding:0 20px 22px;border-top:1px solid var(--line)}
.advanced-options-body>*:first-child{margin-top:16px}
#remote-section .privacy-line{color:var(--muted);font-size:12px;margin-top:8px}
/* Découverte géolocalisée (audit produit 17/07) : recherche "autre lieu" + liste chronologique avec distance. */
.location-override{max-width:600px;margin:16px 0 8px}
#explore .location-override .place-search>div{display:flex!important;flex-wrap:wrap;gap:8px;align-items:center}
#explore .location-override .place-search>div>input#explore-place-query{flex:1 1 180px;min-width:0}
#explore .location-override input#explore-radius{flex:0 0 64px;min-width:0}
#explore .location-override #explore-place-submit{flex:0 0 auto}
#explore-place-reset{margin-top:6px}
.explore-list{margin:0;display:grid;gap:14px}
.activity-row{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;display:grid;grid-template-columns:96px 1fr auto;gap:16px;align-items:center;cursor:pointer;transition:.2s}
.activity-row:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.activity-row img{width:96px;height:96px;border-radius:14px;object-fit:cover}
.activity-row-body{min-width:0}
.activity-row-body h3{font:800 17px 'Baloo 2';margin:5px 0}
.activity-row-body .meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--muted);font-size:11px;margin-top:6px}
.activity-row-body .meta>span:first-child{display:flex;align-items:center;gap:5px}
.distance-badge,.org-badge{background:var(--mint-pale);color:#287d69;padding:3px 9px;border-radius:100px;font-weight:700}
.org-badge{background:#f3ecdd;color:#8a6d1f}
.activity-row-footer{text-align:right;color:var(--muted);font-size:11px;white-space:nowrap}
.activity-row-footer strong{color:var(--ink);font-size:15px;display:block}
@media(max-width:720px){.activity-row{grid-template-columns:64px 1fr;grid-template-areas:"img body" "img footer"}.activity-row img{width:64px;height:64px;grid-area:img}.activity-row-body{grid-area:body}.activity-row-footer{grid-area:footer;text-align:left}}
.profile-search-zone .place-search{max-width:480px}
.profile-search-zone label:has(#search-zone-radius){max-width:200px}
.organizer-type-choice{border:0;padding:0;margin:16px 0}
.organizer-type-choice legend{font-weight:800;font-size:12px;margin-bottom:8px}.profile-intro h1{font:800 30px 'Baloo 2';margin:0}.profile-intro p{color:var(--muted)}.profile-intro .secondary{margin-left:auto}.verification{display:inline-flex;gap:5px;background:var(--mint-pale);color:#287d69;padding:6px 9px;border-radius:8px;font-size:10px}.bio{line-height:1.7;color:var(--muted);max-width:600px;margin:25px 0}.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:18px;padding:22px;text-align:center}.stats div{display:grid}.stats strong{font:800 23px 'Baloo 2'}.stats span{color:var(--muted);font-size:11px}.profile-section{margin:35px 0}.profile-section h2{font:800 20px 'Baloo 2'}.interest-list{display:flex;gap:8px;flex-wrap:wrap}.interest-list span{padding:10px 13px;background:#f7f5f0;border-radius:18px;font-size:12px}.trust-panel{display:flex;gap:16px;background:var(--mint-pale);padding:20px;border-radius:18px}.trust-panel h3{margin:0}.trust-panel p{color:var(--muted);margin:5px 0}.mobile-nav{display:none}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,30px);background:var(--ink);color:#fff;padding:13px 20px;border-radius:12px;opacity:0;pointer-events:none;transition:.3s;z-index:100;font-size:13px}#toast.show{opacity:1;transform:translate(-50%,0)}svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:1050px){.sidebar{width:210px}.safety-card{display:none}main{margin-left:210px}.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{padding:50px}.hero-visual{height:280px}.hero-visual:after{background:linear-gradient(180deg,#f3e4d2,transparent 30%)}.activity-grid,.explore-grid{grid-template-columns:repeat(2,1fr)}.template-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){body{background:#fff}.sidebar{display:none}main{margin-left:0;padding-bottom:75px}.topbar{height:75px;padding:0 18px}.hero{margin:0 14px 45px;border-radius:22px;display:flex;flex-direction:column}.hero-copy{padding:38px 25px}.hero h1{font-size:37px}.hero-copy p{font-size:14px}.hero-actions{align-items:flex-start;flex-direction:column;gap:15px}.hero-visual{height:240px}.floating-card{left:14px;right:14px}.section-heading{margin:0 18px 17px;align-items:center}.section-heading h2{font-size:21px}.section-heading .text-link{font-size:0}.section-heading .text-link svg{width:20px}.activity-grid{margin:0 18px 48px;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}.activity-card{min-width:82vw;scroll-snap-align:start}.idea-banner{margin:0 18px 50px;padding:24px;grid-template-columns:auto 1fr}.idea-banner p{display:none}.idea-banner .secondary{grid-column:1/-1}.weekend-strip{margin:0 18px 45px;grid-template-columns:1fr}.page-view{padding:35px 18px 90px}.page-head h1,.create-header h1{font-size:33px}.explore-grid{display:grid;overflow:visible;margin:0;grid-template-columns:1fr}.explore-grid .activity-card{min-width:0}.detail-hero{height:250px}.detail-grid{grid-template-columns:1fr;gap:20px}.detail-copy h1{font-size:31px}.detail-facts{grid-template-columns:1fr}.join-card{position:static}.template-grid{grid-template-columns:repeat(3,1fr)}#create-form{padding:22px;margin-top:20px}.form-row{grid-template-columns:1fr}.message-layout{grid-template-columns:1fr;height:700px}.conversation-list{display:none}.bubble{max-width:85%}.profile-cover{height:150px}.profile-intro{align-items:center;flex-wrap:wrap}.avatar-edit img{width:105px;height:105px}.profile-intro .secondary{width:100%;margin:0}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;height:70px;background:#fff;border-top:1px solid var(--line);z-index:50;padding:7px 8px env(safe-area-inset-bottom)}.mobile-nav button{border:0;background:none;color:#8a938f;display:grid;place-items:center;font-size:9px}.mobile-nav button.active{color:var(--coral)}.mobile-nav small{font-size:9px}.mobile-nav .create-mobile{width:50px;height:50px;background:var(--coral);color:#fff;border-radius:16px;transform:translateY(-16px);margin:auto;box-shadow:0 7px 16px rgba(233,109,58,.35)}.top-actions img{display:none}}

/* Extended organization, calendar and safety flows */
.agenda-shortcut{border:0;background:none;display:flex;align-items:center;gap:7px;color:var(--ink);font-weight:700;cursor:pointer}.agenda-shortcut svg{color:var(--coral)}
.sidebar-tools{border-top:1px solid var(--line);margin-top:20px;padding-top:16px;display:grid;gap:8px}.calendar-link{width:100%;background:var(--mint-pale);color:var(--ink);align-items:center}.calendar-link>span:nth-child(2){display:grid;gap:2px}.calendar-link small{font-size:9px;color:var(--muted);font-weight:500}.calendar-link>b{margin-left:auto;background:var(--ink);color:#fff;border-radius:9px;padding:2px 7px;font-size:10px}.language-picker{display:flex;align-items:center;gap:12px;padding:10px 14px;color:var(--muted)}.language-picker>span:last-child{display:grid;gap:1px;min-width:0}.language-picker small{font-size:8px;letter-spacing:1px}.language-picker select{border:0;padding:0;background:transparent;color:var(--ink);font:600 11px 'DM Sans';max-width:130px}.language-picker svg{width:19px}.sidebar .safety-card{margin-top:auto}
[dir=rtl] .sidebar{left:auto;right:0;border-right:0;border-left:1px solid var(--line)}[dir=rtl] main{margin-left:0;margin-right:260px}[dir=rtl] .calendar-link>b{margin-left:0;margin-right:auto}[dir=rtl] .hero-visual:after{background:linear-gradient(270deg,#f3e4d2 0%,transparent 25%)}
@media(max-width:1050px){[dir=rtl] main{margin-right:210px}}@media(max-width:720px){[dir=rtl] main{margin-right:0}}
.detail-map{height:235px;border-radius:22px;background:linear-gradient(35deg,#e8f0ea,#f6f1df);margin:25px 0;position:relative;overflow:hidden;border:1px solid var(--line)}.detail-map:before,.map-picker:before{content:"";position:absolute;inset:0;background-image:linear-gradient(28deg,transparent 48%,rgba(255,255,255,.8) 49%,rgba(255,255,255,.8) 52%,transparent 53%),linear-gradient(-32deg,transparent 38%,rgba(255,255,255,.7) 39%,rgba(255,255,255,.7) 43%,transparent 44%);background-size:120px 90px,160px 120px}.map-radius{position:absolute;left:50%;top:50%;width:125px;height:125px;border-radius:50%;background:rgba(233,109,58,.18);border:2px solid var(--coral);transform:translate(-50%,-50%);display:grid;place-items:center;color:var(--coral)}.map-label{position:absolute;left:15px;bottom:15px;background:#fff;padding:10px 13px;border-radius:10px;box-shadow:var(--shadow);display:grid;font-size:11px}.map-label small{color:var(--muted)}.participant-section{margin:35px 0}.participant-head,.participant-tabs{display:flex;align-items:center;justify-content:space-between}.participant-tabs{justify-content:flex-start;gap:8px;margin:14px 0}.participant-tabs button,.message-tabs button{border:0;background:#f4f3ef;padding:9px 13px;border-radius:22px;font-weight:700;color:var(--muted);cursor:pointer}.participant-tabs button.active,.message-tabs button.active{background:var(--ink);color:#fff}.people-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.person-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:18px;padding:10px}.person-row img{width:40px;height:40px;border-radius:50%}.person-row div{display:grid;font-size:12px}.person-row small{color:var(--muted)}.person-row button{margin-left:auto;border:0;background:none;color:var(--coral);font-weight:700}.privacy-line{font-size:11px;color:var(--muted);display:flex;gap:7px;align-items:center;margin-top:12px}
.visibility-choice{border:0;padding:0;margin:0 0 30px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.visibility-choice legend{font-weight:800;margin-bottom:12px}.choice-card{border:1px solid var(--line);border-radius:15px;padding:14px!important;display:flex!important;align-items:flex-start;gap:9px!important;margin:0!important;cursor:pointer}.choice-card>span{font-size:22px}.choice-card div{display:grid;gap:4px}.choice-card small{font-weight:400;color:var(--muted);line-height:1.35}.choice-card.active{border-color:var(--coral);background:#fff3ef}.conditional-panel{display:none;background:#f6f5f1;padding:18px;border-radius:15px}.conditional-panel.show{display:block}.form-section{border-top:1px solid var(--line);padding-top:20px;margin-top:30px}.form-section h3{font:800 17px 'Baloo 2';margin:0 0 15px}.form-section-head p{color:var(--muted);font-size:11px}.form-row.three{grid-template-columns:repeat(3,1fr)}.map-picker{height:150px;background:#e7efe9;border-radius:16px;position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;padding:20px;margin:10px 0}.map-picker>svg,.map-picker>div,.map-picker>button{position:relative;z-index:1}.map-picker>svg{color:var(--coral);width:30px;height:30px}.map-picker>div{display:grid;margin-right:auto}.map-picker small{color:var(--muted)}.switch-row{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:9px!important;font-weight:500!important}.switch-row input{width:17px;height:17px}.age-range{display:flex;align-items:center;gap:10px}.age-range input{width:90px}.safety-note{display:flex;gap:13px;background:var(--mint-pale);padding:16px;border-radius:14px;margin-top:25px}.safety-note p{margin:0;font-size:11px;line-height:1.5}.safety-note svg{min-width:22px;color:#28826d}
.message-tabs{display:flex;gap:8px;margin:-10px 0 20px}.message-tabs b{background:var(--coral);color:#fff;border-radius:8px;padding:1px 5px;margin-left:5px}.private-safety{display:none;align-items:center;gap:12px;background:#fff3ef;border:1px solid #f5d0c5;border-radius:15px;padding:14px;margin-bottom:15px}.private-safety.show{display:flex}.private-safety p{font-size:11px;line-height:1.45;margin:0;flex:1}.private-safety svg{min-width:23px;color:var(--coral)}.chat-actions{display:flex;gap:7px}.friend-policy{margin-top:22px;background:#f7f5f0;border-radius:18px;padding:20px}.friend-policy h3{margin:0}.friend-policy p,.friend-policy small{color:var(--muted);font-size:11px;line-height:1.5}.friend-policy>div{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.friend-policy>div span{background:#fff;padding:8px 10px;border-radius:10px;font-size:10px}
.calendar-view .page-head p{color:var(--muted);margin-top:-20px}.calendar-legend{display:flex;gap:18px;margin:5px 0 22px;font-size:11px;color:var(--muted)}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i,.agenda-panel i{width:9px;height:9px;border-radius:3px}.confirmed{background:#54ae97}.pending{background:#e8b541}.private{background:#7b74c9}.host{background:var(--coral)}.calendar-shell{border:1px solid var(--line);border-radius:22px;overflow:hidden;max-width:900px}.calendar-toolbar{display:flex;align-items:center;gap:10px;padding:18px}.calendar-toolbar h2{font:800 20px 'Baloo 2';margin:0 10px}.today-button{margin-left:auto;padding:10px 15px}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-week{background:#f6f5f1;padding:10px 0;text-align:center;color:var(--muted);font-size:10px;font-weight:700}.calendar-day{min-height:105px;border-right:1px solid var(--line);border-top:1px solid var(--line);padding:9px;font-size:11px}.calendar-day:nth-child(7n){border-right:0}.calendar-day.muted{color:#bbc0bd;background:#fcfcfa}.calendar-day.today>span{background:var(--coral);color:#fff;width:24px;height:24px;border-radius:50%;display:grid;place-items:center}.calendar-event{display:block;margin-top:6px;border-radius:6px;padding:4px 6px;color:#fff;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.confirmed{background:#54ae97}.calendar-event.pending{background:#e8b541;color:#443600}.calendar-event.private{background:#7b74c9}.calendar-event.host{background:var(--coral)}.agenda-panel{display:flex;gap:20px;background:var(--ink);color:#fff;border-radius:22px;padding:22px;max-width:900px;margin-top:18px}.agenda-date{display:flex;align-items:center;gap:9px;border-right:1px solid #3a514c;padding-right:20px}.agenda-date strong{font:800 38px 'Baloo 2'}.agenda-date span{font-size:9px;color:#a9bbb6}.agenda-panel>div:last-child{flex:1}.agenda-panel h3{margin:0 0 10px}.agenda-panel article{display:flex;align-items:center;gap:9px;padding:8px 0;border-top:1px solid #3a514c}.agenda-panel article div{display:grid;flex:1}.agenda-panel article span{font-size:10px;color:#a9bbb6}.agenda-panel article button{border:0;background:#fff;color:var(--ink);border-radius:8px;padding:7px 9px;font-size:10px}
@media(max-width:720px){.top-actions img,.agenda-shortcut{display:none}.visibility-choice{grid-template-columns:1fr}.form-row.three{grid-template-columns:1fr}.map-picker{height:190px;align-items:flex-end;flex-wrap:wrap}.map-picker button{width:100%}.calendar-view .page-head{align-items:flex-start;gap:12px}.calendar-view .page-head .primary{font-size:0;padding:13px}.calendar-legend{flex-wrap:wrap}.calendar-shell{overflow-x:auto}.calendar-toolbar,.calendar-week,.calendar-grid{min-width:680px}.agenda-panel{display:block}.agenda-date{border-right:0;border-bottom:1px solid #3a514c;padding:0 0 13px;margin-bottom:13px}.people-grid{grid-template-columns:1fr}.private-safety{align-items:flex-start;flex-wrap:wrap}.private-safety .text-link{margin-left:35px}}

/* Agenda prominence, profile visitors and verified reviews */
.home-agenda{margin:0 5vw 65px;background:#fff;border-radius:24px;padding:26px 30px;box-shadow:var(--shadow)}.home-agenda-head,.profile-section-title{display:flex;align-items:center;justify-content:space-between}.home-agenda h2{font:800 25px 'Baloo 2';margin:7px 0}.week-timeline{display:grid;grid-template-columns:repeat(7,1fr);border-block:1px solid var(--line);padding:15px 0;margin:12px 0 18px}.week-timeline>div{min-height:65px;display:grid;place-items:center;position:relative;border-right:1px solid var(--line)}.week-timeline>div:last-child{border:0}.week-timeline small{font-size:9px;color:var(--muted)}.week-timeline strong{font:800 17px 'Baloo 2'}.week-timeline span{font-size:8px}.today-dot{width:5px;height:5px;border-radius:50%;background:var(--coral)}.has-event:after{content:"";position:absolute;inset:3px 22%;border:2px solid;border-radius:15px;pointer-events:none}.pending-ring:after{border-color:#e8b541}.confirmed-ring:after{border-color:#54ae97}.private-ring:after{border-color:#7b74c9}.next-event{display:flex;align-items:center;gap:18px;background:#f7f5f0;border-radius:16px;padding:15px 18px}.event-date{display:grid;place-items:center;background:var(--coral);color:#fff;width:52px;height:52px;border-radius:15px}.event-date strong{font:800 20px 'Baloo 2'}.event-date small{font-size:8px}.next-event>div:nth-child(2){flex:1}.next-event h3{margin:3px 0;font:800 16px 'Baloo 2'}.next-event p{margin:0;color:var(--muted);font-size:10px}.mini-people,.visitor-list{display:flex}.mini-people>span,.visitor>span,.participant-photo{position:relative}.mini-people img{width:35px;height:35px;border-radius:50%;border:2px solid #fff;margin-left:-8px}.mini-people b,.visitor span b,.participant-photo b{position:absolute;right:-2px;bottom:-3px;background:var(--ink);color:#fff;border:2px solid #fff;border-radius:8px;padding:1px 4px;font-size:8px}.participant-photo img{display:block}.profile-visitors{background:#f7f5f0;border-radius:18px;padding:20px}.profile-section-title p{margin:4px 0;color:var(--muted);font-size:11px}.visitor-list{gap:20px;margin-top:16px}.visitor{border:0;background:none;display:grid;place-items:center;gap:5px;cursor:pointer}.visitor img{width:55px;height:55px;border-radius:50%;object-fit:cover}.visitor strong{font-size:11px}.visitor small{font-size:9px;color:var(--muted)}.visibility-explainer{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);margin:15px 0 0}.reviews-preview article,.review-card{border:1px solid var(--line);border-radius:15px;padding:15px}.review-author{display:flex;align-items:center;gap:10px}.review-author img{width:38px;height:38px;border-radius:50%}.review-author div{display:grid}.review-author span{color:#c48721;font-size:10px}.reviews-preview article p,.review-card p{font-size:12px;line-height:1.5}.reviews-preview article>small{color:var(--muted)}.profile-modal{position:fixed;inset:0;background:rgba(23,57,45,.55);z-index:200;display:none;place-items:center;padding:20px}.profile-modal.show{display:grid}.profile-dialog{background:#fff;width:min(620px,100%);max-height:90vh;overflow:auto;border-radius:24px;padding:28px;position:relative;box-shadow:var(--shadow)}.modal-close{position:absolute;right:18px;top:15px;border:0;background:#f2f1ed;width:34px;height:34px;border-radius:50%;font-size:22px}.person-hero{display:flex;align-items:center;gap:20px}.person-photo{position:relative}.person-photo img{width:110px;height:110px;border-radius:28px;object-fit:cover}.person-photo span{position:absolute;right:-6px;bottom:5px;background:var(--ink);color:#fff;padding:5px 8px;border-radius:10px;font-size:10px}.person-hero h2{font:800 27px 'Baloo 2';margin:8px 0 4px}.person-hero p{margin:0;color:var(--muted)}.person-trust{display:flex;align-items:baseline;gap:6px;margin-top:8px}.person-trust strong{color:#2b8f77}.person-trust span{font-size:10px;color:var(--muted)}.friend-limit{display:flex;align-items:center;gap:12px;background:var(--mint-pale);padding:14px;border-radius:15px;margin:22px 0}.friend-limit>div{display:grid;flex:1}.friend-limit small{color:var(--muted)}.friend-limit .primary{padding:11px 14px}.profile-dialog section{border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.rating{color:#b47714;font-weight:800}.review-card{margin:9px 0}.review-policy{display:block;color:var(--muted);line-height:1.5;margin-top:12px}
@media(max-width:720px){.home-agenda{margin:0 18px 45px;padding:20px}.home-agenda-head .secondary{font-size:0;padding:12px}.week-timeline{overflow-x:auto;grid-template-columns:repeat(7,65px)}.has-event:after{inset:3px 8px}.next-event{align-items:flex-start;flex-wrap:wrap}.next-event .text-link{margin-left:auto}.mini-people{margin-left:8px}.visitor-list{justify-content:space-between}.person-hero{align-items:flex-start}.person-photo img{width:85px;height:85px}.friend-limit{align-items:flex-start;flex-wrap:wrap}.friend-limit .primary{width:100%}}

/* LIVEROK brand layer */
.liverok-brand{margin-bottom:10px;padding:0 4px}.liverok-brand img{display:block;width:118px;height:auto}.hero{background:#f3e4d2}.hero h1 em{color:var(--coral)}.hero .eyebrow{color:#8a5a3f}.primary{letter-spacing:.1px}.brand-mark{display:none}.calendar-event{width:100%;border:0;text-align:left;cursor:pointer;font-family:inherit}.skip-link{position:fixed;left:16px;top:10px;z-index:9999;background:#17392d;color:#fff;padding:10px 14px;border-radius:8px;transform:translateY(-150%)}.skip-link:focus{transform:none}.nav-item:focus-visible,.primary:focus-visible,.secondary:focus-visible,.icon-button:focus-visible,.calendar-event:focus-visible{outline:3px solid #17392d;outline-offset:3px}.guest-mini{margin-top:auto;display:grid;gap:8px;padding:16px;background:var(--mint-pale);border-radius:16px}.guest-mini small{color:var(--muted)}.guest-mini .primary{padding:11px;text-decoration:none}.guest-mini>a:last-child{text-align:center;color:var(--ink);font-size:12px}.auth-login,.auth-register{text-decoration:none;padding:11px 15px}@media(max-width:720px){.auth-login,.auth-register{display:none}}

/* Complete member workspace */
.workspace-view{max-width:1100px;margin:auto}.subtabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin:0 0 24px}.subtabs button,.settings-nav button{border:0;background:none;padding:14px 16px;font:700 12px 'Baloo 2';cursor:pointer}.subtabs button.active{border-bottom:3px solid var(--coral)}.subpanel{display:none}.subpanel.active{display:block}.people-cards{display:grid;gap:12px}.people-cards article,.notification-list article{display:flex;align-items:center;gap:16px;padding:17px;background:#fff;border:1px solid var(--line);border-radius:16px}.people-cards img{width:58px;height:58px;border-radius:50%;object-fit:cover}.people-cards article>div,.notification-list article>div{flex:1}.people-cards h3,.notification-list h3{margin:0 0 4px;font:800 15px 'Baloo 2'}.people-cards p,.notification-list p{margin:0;color:var(--muted);font-size:11px}.empty-state{text-align:center;background:#fff;border:1px dashed var(--line);border-radius:18px;padding:60px 20px}.empty-state>span{font-size:40px}.notification-list{display:grid;gap:10px}.notification-list article.unread{border-left:5px solid var(--coral);background:#fffaf8}.notification-list article>span{display:grid;place-items:center;width:42px;height:42px;border-radius:18px;background:var(--mint-pale)}.notification-list small{color:var(--muted)}.notification-list button{border:0;background:none;color:var(--coral-dark);font-weight:800;cursor:pointer}.settings-layout{display:grid;grid-template-columns:220px 1fr;gap:28px}.settings-nav{display:flex;flex-direction:column;align-items:stretch}.settings-nav button{text-align:left;border-radius:10px}.settings-nav button.active{background:var(--ink);color:#fff}.settings-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:25px}.settings-card label:not(.switch-row){display:grid;gap:7px;margin:15px 0;font-weight:700}.settings-card input{padding:13px;border:1px solid var(--line);border-radius:9px}.settings-card .switch-row{margin:15px 0}.danger-link{display:block;border:0;background:none;color:#b82f28;font-weight:800;padding:13px 0;cursor:pointer}.help-links{display:grid;gap:8px}.help-links button,.help-grid button,.legal-grid button{padding:14px;text-align:left;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-weight:700}.help-grid,.legal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.help-grid article,.legal-grid article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px}.help-grid h2,.legal-grid h2{font:800 18px 'Baloo 2'}.help-grid p,.legal-grid p{color:var(--muted);line-height:1.55}.onboarding{position:fixed;inset:0;background:rgba(23,57,45,.65);z-index:300;display:none;place-items:center;padding:20px}.onboarding.show{display:grid}.onboarding-card{position:relative;width:min(560px,100%);background:#fff;border-radius:25px;padding:35px}.onboarding-card h2{font:800 28px 'Baloo 2';margin:15px 0 8px}.onboarding-card>p{color:var(--muted);line-height:1.6}.onboarding-choices{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.onboarding-choices button{padding:11px;border:1px solid var(--line);border-radius:22px;background:#fff;cursor:pointer}.onboarding-choices button.selected{background:var(--mint-pale);border-color:var(--mint)}.onboarding-actions{display:flex;align-items:center;justify-content:space-between}
@media(max-width:720px){.settings-layout{grid-template-columns:1fr}.settings-nav{flex-direction:row;overflow:auto}.settings-nav button{white-space:nowrap}.help-grid,.legal-grid{grid-template-columns:1fr}.people-cards article{flex-wrap:wrap}.people-cards article>div{min-width:calc(100% - 80px)}.notification-list article{align-items:flex-start}.notification-list article button{margin-left:58px}.onboarding-card{padding:28px 22px}}
/* Product-grade authentication, maps and honest states */
.product-modal{position:fixed;inset:0;z-index:10000;background:rgba(23,57,45,.68);display:grid;place-items:center;padding:20px}.product-modal[hidden]{display:none}.product-dialog{width:min(480px,100%);max-height:90dvh;overflow:auto;background:#fff;border-radius:24px;padding:28px;box-shadow:0 30px 90px #0005;position:relative}.product-close{position:absolute;right:14px;top:14px;width:44px;height:44px;border:0;background:#f1f5f3;border-radius:50%;font-size:24px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.auth-tabs button{min-height:44px;border:1px solid #d9e2de;background:#fff;border-radius:12px}.auth-tabs button.active{background:#17392d;color:#fff}.product-dialog form{display:grid;gap:14px}.product-dialog label{display:grid;gap:6px;font-weight:700}.product-dialog input[type=email],.product-dialog input[type=password],.product-dialog input[name=name]{min-height:48px;padding:0 14px;border:1px solid #aebdb7;border-radius:12px;font:inherit}.product-dialog label:has(input[type=checkbox]){grid-template-columns:auto 1fr;align-items:start;font-weight:500}.form-feedback{min-height:24px}.auth-note{font-size:12px;color:#5d6e68;margin-top:16px}.real-map{height:360px;border-radius:16px;overflow:hidden}.map-picker:has(.real-map){display:block;padding:10px}.empty-state{grid-column:1/-1;text-align:center;padding:48px 24px;border:1px dashed #b8c8c2;border-radius:18px;background:#f8fbfa}.empty-state.error{border-color:#d98b7a;background:#fff7f5}.modal-open{overflow:hidden}@media(max-width:720px){.product-dialog{border-radius:18px;padding:22px}.real-map{height:300px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.real-list{display:grid;gap:10px}.real-list article{display:grid;grid-template-columns:52px 1fr auto auto;gap:10px;align-items:center;padding:12px;border:1px solid #dce5e1;border-radius:14px}.real-list img{width:52px;height:52px;border-radius:50%;object-fit:cover}.real-list small{display:block;color:#66756f}.real-list button{min-height:44px;padding:0 14px;border:1px solid #aebdb7;border-radius:10px;background:#fff}
.mobile-more-scrim{position:fixed;inset:0;z-index:9997;border:0;background:rgba(23,57,45,.45)}.mobile-more-scrim[hidden]{display:none}.mobile-more-menu{position:fixed;z-index:9998;left:0;right:0;bottom:0;display:block;background:#fff;border:0;border-radius:24px 24px 0 0;padding:10px 16px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -14px 44px rgba(23,57,45,.22);max-height:82dvh;overflow-y:auto}.mobile-more-menu[hidden]{display:none}.mobile-more-grip{width:42px;height:5px;border-radius:3px;background:#e2e7e3;margin:2px auto 12px}.mobile-more-title{margin:0 4px 14px;font:800 12px 'Baloo 2';letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.mobile-more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mobile-more-menu .mobile-more-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:88px;border:1px solid var(--line);background:#fff;border-radius:18px;padding:14px 6px;color:var(--ink);text-decoration:none;font:700 12px 'DM Sans';text-align:center;cursor:pointer}.mobile-more-menu .mobile-more-item:hover,.mobile-more-menu .mobile-more-item:focus-visible{background:#fff0eb;border-color:var(--coral)}.mobile-more-menu .mobile-more-item .mm-ic{width:26px;height:26px;display:grid;place-items:center;color:var(--coral-dark)}.mobile-more-menu .mobile-more-item .mm-ic svg{width:24px!important;height:24px!important}.mobile-more-menu .mobile-more-item .mm-emoji{font-size:23px;line-height:1}.mobile-more-menu .mobile-more-item .mm-lb{line-height:1.2}.activity-card:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #126c5b!important;outline-offset:3px}
.place-search{display:grid;gap:6px;margin-bottom:10px}.place-search>div:first-of-type{display:grid;grid-template-columns:1fr auto;gap:8px}.place-search input{min-height:46px;border:1px solid #9fb1aa;border-radius:10px;padding:0 12px}.place-search button{min-height:44px;border:1px solid #9fb1aa;border-radius:10px;background:#fff;padding:0 14px}.place-results{display:grid;gap:4px}.place-results button{text-align:left;height:auto;min-height:44px;padding:8px 10px}
.member-search{display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px;padding:16px;border:1px solid #dce5e1;border-radius:16px;background:#fff}.member-search label{display:grid;gap:5px}.member-search input{min-height:44px;border:1px solid #9fb1aa;border-radius:10px;padding:0 12px}.member-search>button{min-height:44px}.member-results{grid-column:1/-1;display:grid;gap:8px}.member-results article{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px}.member-results img{width:44px;height:44px;border-radius:50%}
.choice-card input{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.choice-card:focus-within{outline:3px solid #126c5b;outline-offset:3px}
.save,.modal-close,.product-close,.icon-button,.message-compose button{min-width:44px!important;min-height:44px!important}
@media(max-width:720px){.conversation-list{display:block!important}.message-layout{display:block!important}.conversation-list:empty:before{content:'Choisissez un ami depuis la rubrique Amis pour commencer une conversation.';display:block;padding:20px;color:#53605b}.chat{min-height:55dvh}.chat-body{max-height:45dvh}}
.bot-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Accessible product states: unsupported controls are explicit and inert. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
button:disabled,[aria-disabled="true"]{cursor:not-allowed!important;opacity:.55!important;transform:none!important;box-shadow:none!important}
.message-tabs [role="tab"][aria-selected="true"]{background:var(--ink);color:#fff}
.message-tabs [role="tab"]:focus-visible{outline:3px solid #126c5b;outline-offset:3px}

@media(max-width:720px){
  main{padding-bottom:calc(86px + env(safe-area-inset-bottom))}
  .mobile-nav{height:calc(70px + env(safe-area-inset-bottom));grid-template-columns:repeat(6,minmax(0,1fr));padding-bottom:calc(7px + env(safe-area-inset-bottom))}
  .message-layout{height:auto!important;overflow:visible!important;border:0!important}
  .conversation-list{display:flex!important;gap:8px;overflow-x:auto;border:1px solid var(--line)!important;border-radius:14px;margin-bottom:14px;scroll-snap-type:x mandatory}
  .conversation{min-width:78vw;scroll-snap-align:start;border-bottom:0!important;border-right:1px solid var(--line)}
  .chat{min-height:0!important;border:1px solid var(--line);border-radius:16px;overflow:hidden}
  .chat-body{min-height:38dvh;max-height:48dvh!important;padding:18px!important}
  .message-compose{position:sticky;bottom:calc(70px + env(safe-area-inset-bottom));background:#fff;z-index:3}
  .calendar-shell{display:none}
  .calendar-view .agenda-panel{display:block!important;margin-top:12px}
  .calendar-view .calendar-legend{margin-top:0}
  .calendar-view .page-head .primary{font-size:12px!important;padding:12px!important}
  .profile-dialog,.onboarding-card{max-height:calc(100dvh - 24px)!important;border-radius:18px!important;padding:22px!important}
}

/* 3.17.0 — resilient layouts and community channels */
/* 3.18.0 — bannière de re-vérification e-mail + politique mot de passe 6 car. (P0-02) */
/* 3.19.0 — réponse au ré-audit : inscription sans auto-connexion (anti-énumération) */
/* 3.20.0 — audit post-déploiement : connexion refusée avant vérification + renvoi public */
.auth-resend{display:block;margin-top:4px}
.auth-verify-hint{margin:6px 0 0;color:var(--muted,#66726c)}
html,body{max-width:100%;overflow-x:hidden}
.app-shell,main,.view,.page-view,.page-head,.detail-grid,.detail-copy,.detail-copy>*,
.detail-facts,.fact,.join-card,.activity-card,.card-body,.message-layout,.conversation-list,
.conversation,.conversation>div,.chat,.chat-head,.chat-head>div,.chat-body,.bubble,
.profile-main,.profile-intro,.product-dialog{min-width:0}
main{width:calc(100% - 260px);max-width:none}
.detail-grid{width:min(1050px,100%);grid-template-columns:minmax(0,1fr) minmax(260px,330px)}
.detail-copy{overflow:hidden}
.detail-copy h1,.detail-copy h2,.detail-copy h3,.detail-copy p,.detail-copy li,
.detail-copy a,.detail-copy span,.detail-copy strong,.fact,.join-card,.card-body h3,
.conversation strong,.conversation small,.chat-head strong,.chat-head small,.bubble,
.message-attachment,.profile-main p,.profile-main h1,.profile-main h2{
  overflow-wrap:anywhere;word-break:break-word;hyphens:auto
}
.detail-copy img,.detail-copy video,.detail-copy iframe,.detail-copy table,
.message-attachment img,.message-attachment video{max-width:100%;height:auto}
.detail-hero{max-width:100%}
.detail-hero img{display:block;max-width:100%}

/* Brand system: official orange / green / white identity. */
.sidebar{border-top:5px solid var(--coral);background:linear-gradient(180deg,#fff 0,#fff 72%,#f8fcf9 100%)}
.brand,.liverok-brand{margin-left:0;margin-right:0}
.brand img,.liverok-brand img{display:block;width:min(172px,100%);height:auto;object-fit:contain}
.nav-item.active,.nav-item:hover{background:linear-gradient(90deg,#fff0e9,#eef7f1);color:var(--ink)}
.nav-item.active{box-shadow:inset 4px 0 0 var(--coral)}
.page-head h1,.chat-head strong{color:var(--ink)}
.primary{background:linear-gradient(135deg,var(--coral),#f2824e)}

/* Community account → channel hierarchy. */
#messages.mode-subscriptions .message-layout{grid-template-columns:minmax(260px,360px) minmax(0,1fr)}
#messages.mode-subscriptions .conversation-list{display:block;overflow-y:auto;background:#fcfdfc}
#messages.mode-subscriptions .chat>.message-compose,
#messages.mode-subscriptions #report-button{display:none!important}
.community-account{border-bottom:1px solid var(--line)}
.community-account>header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:11px;align-items:center;padding:16px 15px 10px}
.community-account>header>button:first-child{min-width:0;display:grid;grid-template-columns:44px minmax(0,1fr);gap:11px;align-items:center;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;padding:0;border-radius:14px}
.community-account>header>button:first-child:focus-visible{outline:3px solid var(--coral);outline-offset:4px}
.community-account-avatar,.community-account>header>button:first-child img,.community-message-avatar{width:44px;height:44px;border-radius:15px;object-fit:cover;background:var(--mint-pale)}
.community-account-copy,.community-account>header>button:first-child span{display:grid;gap:2px;min-width:0}
.community-account-copy strong,.community-account-copy small,.community-account>header>button:first-child strong,.community-account>header>button:first-child small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.community-account-copy small,.community-account>header>button:first-child small{color:var(--muted);font-size:10px}
.community-account>header .icon-button{width:36px;height:36px;min-width:36px!important;min-height:36px!important;border-radius:12px}
.community-add-channel{width:38px;height:38px;border:1px solid #dce9df;border-radius:13px;background:var(--mint-pale);color:var(--ink);font-size:22px;line-height:1;cursor:pointer}
.community-add-channel:hover{background:var(--coral);border-color:var(--coral);color:#fff}
.community-channels,.community-channel-list{display:grid;gap:5px;padding:0 10px 13px 68px}
.community-channel{width:100%;display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-items:center;border:0;border-radius:12px;background:transparent;color:var(--ink);padding:9px 10px;text-align:left;cursor:pointer}
.community-channel:hover,.community-channel.active{background:var(--mint-pale)}
.community-channel-icon{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:#fff0e9;color:var(--coral-dark);font-size:12px}
.community-channel-copy,.community-channel>span:last-child{display:grid;gap:2px;min-width:0}
.community-channel-copy strong,.community-channel-copy small,.community-channel>span:last-child strong,.community-channel>span:last-child small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.community-channel-copy small,.community-channel>span:last-child small{font-size:10px;color:var(--muted)}
.community-welcome{max-width:610px;margin:auto;text-align:center;padding:42px 22px}
.community-welcome-logo,.community-welcome>span{width:78px;height:78px;margin:0 auto 18px;border-radius:25px;display:grid;place-items:center;background:linear-gradient(135deg,var(--coral),var(--ink));color:#fff;font:800 26px 'Baloo 2'}
.community-welcome h2{font:800 28px 'Baloo 2';margin:0 0 8px}
.community-welcome p{color:var(--muted);line-height:1.55}
.community-readonly-note{margin:0;padding:13px 18px calc(13px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--mint-pale);color:var(--ink);font-size:12px}
.community-message-compose{margin:0!important;position:relative!important;inset:auto!important;z-index:7;flex:none}
.community-settings-button{padding:10px 14px!important}

/* Community setup and moderator management. */
.community-modal[hidden]{display:none}
.community-modal{position:fixed;inset:0;z-index:10020;display:grid;place-items:center;padding:20px;background:rgba(10,35,27,.62);backdrop-filter:blur(5px)}
.community-dialog{width:min(650px,100%);max-height:min(820px,calc(100dvh - 36px));overflow:auto;background:#fff;border-radius:26px;padding:30px;box-shadow:0 28px 80px rgba(10,35,27,.28)}
.community-dialog h2{font:800 30px 'Baloo 2';margin:8px 0 20px}
.community-dialog label{display:grid;gap:7px;margin:14px 0;font-size:12px;font-weight:800}
.community-dialog input,.community-dialog textarea,.community-dialog select{width:100%}
.community-dialog .switch-row{grid-template-columns:auto 1fr;align-items:center}
.community-dialog .switch-row input{width:20px;height:20px}
.community-moderators{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}
.community-moderators h3{margin:0 0 3px;font:800 19px 'Baloo 2'}
.community-moderators>p{color:var(--muted);font-size:11px}
.community-moderators article{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #f2ece3}
.community-moderators img{width:42px;height:42px;border-radius:14px;object-fit:cover;background:var(--mint-pale)}
.community-moderators span{display:grid;min-width:0}
.community-moderators small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.community-dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:24px}
.community-dialog-actions .danger-link{margin-right:auto}
.danger-link{border:0;background:none;color:#a22c24;font-weight:800;cursor:pointer}
.profile-community-card{margin-top:20px;padding:18px;border:1px solid #dcebe1;border-radius:18px;background:linear-gradient(135deg,#f2faf4,#fff7f1)}
.profile-community-card header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.profile-community-card h3{margin:0;font:800 19px 'Baloo 2'}
.profile-community-card p{margin:6px 0 0;color:var(--muted);font-size:12px}
.profile-community-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}

@media(max-width:1000px){
  .detail-grid{grid-template-columns:minmax(0,1fr);gap:24px}
  .join-card{position:static}
}
@media(max-width:720px){
  main{width:100%;margin-left:0}
  .brand img,.liverok-brand img{width:138px}
  #messages.mode-subscriptions:not(.thread-open) .message-layout{display:block!important;height:auto!important;min-height:calc(100dvh - 250px)}
  #messages.mode-subscriptions:not(.thread-open) .conversation-list{display:block!important;border:0;max-height:none}
  #messages.mode-subscriptions:not(.thread-open) .chat{display:none!important}
  #messages.mode-subscriptions.thread-open .conversation-list{display:none!important}
  .community-account>header{padding-inline:12px}
  .community-channels,.community-channel-list{padding-left:62px}
  .community-dialog{padding:23px 18px;border-radius:21px}
  .community-dialog-actions{display:grid;grid-template-columns:1fr 1fr}
  .community-dialog-actions .danger-link{grid-column:1/-1;justify-self:start}
  .community-dialog-actions .primary,.community-dialog-actions .secondary{width:100%}
  .community-moderators article{grid-template-columns:38px minmax(0,1fr)}
  .community-moderators article button{grid-column:2;justify-self:start}
}

.draft-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px;margin-bottom:18px;border:1px solid #b8c8c2;border-radius:14px;background:#f0f8f5}
/* P0-02 — rappel persistant « adresse e-mail à confirmer » (renvoi du lien de vérification) */
.verify-banner{position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:680px;margin:0 auto;padding:14px 16px;border:1px solid #d9c48a;border-radius:14px;background:#fff8e6;box-shadow:0 10px 30px rgba(22,33,29,.14)}
.verify-banner p{flex:1;min-width:220px;margin:0}
.verify-banner div{display:flex;gap:8px}
.verify-banner button{min-height:44px}
@media(min-width:721px){.verify-banner{bottom:18px}}.draft-banner p{flex:1;min-width:210px;margin:0}.draft-banner button,.notification-actions button{min-height:44px;border:1px solid #9fb1aa;border-radius:10px;background:#fff;padding:0 12px}.mobile-agenda-complete{display:none}.mobile-agenda-complete article{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.mobile-agenda-complete article>div{display:grid;gap:4px;flex:1}.mobile-agenda-complete small{color:var(--muted)}.mobile-agenda-complete button{min-height:44px}.notification-actions{display:flex;gap:8px;flex-wrap:wrap}.activity-message-compose{display:grid;grid-template-columns:1fr auto;gap:8px;padding:14px;border-top:1px solid var(--line);background:#fff}.activity-message-compose .form-feedback{grid-column:1/-1}.error-text{color:#9f271f}
@media(max-width:720px){.mobile-agenda-complete{display:block}.calendar-view .agenda-panel{display:none!important}.activity-message-compose{position:sticky;bottom:calc(70px + env(safe-area-inset-bottom));z-index:4}.conversation{width:100%;text-align:left;background:#fff;border:0}.notification-actions{width:100%}}
@media (max-width:720px){
  #messages .message-layout{display:block}
  #messages .conversation-list{display:block!important;border-right:0}
  #messages .chat{display:none}
  #messages.thread-open .conversation-list{display:none!important}
  #messages.thread-open .chat{display:block}
  #messages .back-conversations{display:inline-flex;margin-right:8px}
}
.review-dialog fieldset{border:0;padding:0;margin:8px 0}.review-dialog legend{font-weight:800;margin-bottom:10px}.rating-radios{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.rating-radios label{display:grid;place-items:center;min-height:48px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.rating-radios input{position:absolute;opacity:0}.rating-radios label:has(input:checked){background:var(--mint-pale);border-color:#126c5b;box-shadow:0 0 0 2px #126c5b}.rating-radios label:has(input:focus-visible){outline:3px solid #126c5b;outline-offset:3px}.rating-radios span{font-size:11px;font-weight:800}.review-dialog textarea{min-height:130px}.review-actions{display:flex;justify-content:flex-end;gap:10px}.person-review-button{min-height:44px}.member-review-summary{margin-top:12px;padding:12px;background:var(--mint-pale);border-radius:12px}.review-availability{padding:12px;background:var(--mint-pale);border-radius:12px}@media(max-width:720px){.rating-radios{grid-template-columns:1fr}.rating-radios label{justify-items:start;padding:0 14px}.review-actions{display:grid}.review-actions button{width:100%;min-height:48px}}

/* Brand system pass 2: spark motif, signature line, rounder cartouche language */
.eyebrow{position:relative;padding-left:20px;display:inline-block}.eyebrow:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 20'%3E%3Cg fill='%23E96D3A'%3E%3Cellipse cx='10' cy='10' rx='2.4' ry='6' transform='rotate(-18 10 10)'/%3E%3Cellipse cx='18' cy='7' rx='2.4' ry='7' transform='rotate(-2 18 7)'/%3E%3Cellipse cx='26' cy='10' rx='2.4' ry='6' transform='rotate(16 26 10)'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}.brand-tagline{display:block;margin:0 0 40px 2px;font:600 11px 'DM Sans';color:var(--muted);letter-spacing:.2px}.brand-tagline em{font-style:italic;color:var(--coral)}
@media(max-width:720px){.brand-tagline{display:none}}
.profile-safety-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.profile-safety-actions button{min-height:44px}.received-review-list{display:grid;gap:12px}.received-review-list .review-card{background:#fff}.received-review-list .text-link{margin-top:10px}.received-review-list small{display:block;color:var(--muted)}@media(max-width:720px){.profile-safety-actions{display:grid}.profile-safety-actions button{width:100%}.received-review-list .review-card{padding:16px}.product-dialog#profile-report-form{max-height:100dvh}}
@media (min-width:721px){#messages .back-conversations{display:none}}
@media (max-width:720px){
  input,textarea,select{font-size:16px!important}
  .chip,.subtabs button,.message-tabs button,.participant-tabs button{min-height:44px}
  .back-conversations,.text-link,.back-button,.onboarding-choices button{min-height:44px;padding-block:10px}
  .activity-message-compose,.message-compose{bottom:calc(70px + env(safe-area-inset-bottom) + var(--keyboard-offset,0px))!important}
}

/* ===== Corrections audit UX (16/07/2026) ===== */
/* Carte de création : le conteneur ne doit plus tronquer la vraie carte Leaflet (360px) à 150px */
.map-picker:has(.real-map){height:auto;min-height:0;max-height:none;overflow:visible;display:block;padding:10px}
.map-picker .place-search{display:block;margin-bottom:10px}
.map-picker .place-search>div{display:flex;gap:8px}
.map-picker .place-search input{flex:1}
.map-picker .place-results{display:grid;gap:6px;margin-top:8px}
.map-picker .place-results button{width:100%;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
/* Messagerie : empêcher le débordement horizontal, empiler liste + conversation sous 900px */
.message-layout{grid-template-columns:320px minmax(0,1fr)}
@media(max-width:900px){.message-layout{grid-template-columns:1fr;height:auto}.message-layout .chat{min-height:60vh}}
/* Un seul champ de saisie : masquer le composeur privé hors de l'onglet « Privés » */
#messages .message-compose{display:none}
#messages.mode-private .message-compose{display:flex}
/* Filtres Explorer non encore implémentés : visiblement inactifs (au lieu de paraître cliquables) */
#explore .chip:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.3)}
/* Profil : chaque libellé au-dessus de son champ, comme les autres formulaires */
#profile-form label,.profile-section form label{display:grid;gap:7px;margin:15px 0;font-weight:700;font-size:12px}
#profile-form input,#profile-form textarea,.profile-section form input,.profile-section form textarea{width:100%}
/* Erreur de publication visible directement dans le formulaire de création */
.create-feedback{margin:0 0 12px;font-weight:700}
.create-feedback.is-error{color:var(--coral,#d2402a)}
/* AUD-006 — Aide sur la capacité + places gérées hors application */
.field-hint{margin:0 0 12px;font-weight:600;font-size:12px;line-height:1.5;color:var(--muted,#6b7b70)}
.join-card .external-places{margin:6px 0 0;font-size:12px;font-weight:700;color:var(--mint,#7fa98a)}
/* AUD-010 — Outils de gestion de l'organisateur (modifier, dupliquer, inviter) */
.host-tools{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.host-tools h4{font:800 14px 'Baloo 2';margin:0 0 10px}
.host-tools-actions{display:flex;flex-wrap:wrap;gap:8px}
.host-tools-actions .secondary{padding:10px 14px;font-size:12px;background:var(--paper);border:1px solid var(--line)}
.host-invite-panel{margin-top:12px}
.host-invite-search>div{display:flex;gap:8px}
.host-invite-search input{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;font:600 13px 'DM Sans'}
.host-invite-results{margin-top:10px;display:grid;gap:8px}
.host-invite-results article{display:flex;align-items:center;gap:10px;font-size:13px}
.host-invite-results img{width:34px;height:34px;border-radius:50%;object-fit:cover}
.host-invite-results article .secondary{margin-left:auto;padding:8px 12px;font-size:12px}
.host-invite-results p{font-size:13px;color:var(--muted,#6b7b70);margin:4px 0}

/* ===== Audit 18/07/2026 — Sprint 0 (OBS-01 à OBS-06) ===== */
/* OBS-03 — liens dans les bulles : cliquables, visibles, coupés proprement sur mobile */
.bubble a.chat-link{color:var(--coral-dark);text-decoration:underline;word-break:break-all;overflow-wrap:anywhere}
.bubble.mine a.chat-link{color:#ffd9c4}
/* OBS-02 — horodatages lisibles (9px était sous le seuil de lisibilité) */
.bubble small{font-size:11px}
.day{font-size:11px}
/* OBS-02 — en-tête de conversation compact : retour 44px, titre sur une ligne ellipsé */
.chat-head{align-items:center;gap:10px}
.chat-head>div{min-width:0;flex:1}
#chat-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.back-conversations{border:1px solid var(--line);background:#fff;border-radius:12px;min-width:44px;min-height:44px;padding:0 12px;font:700 12px 'DM Sans';cursor:pointer;flex:none;display:inline-flex;align-items:center;gap:6px}
/* OBS-02 — callout sécurité repliable */
.private-safety .safety-toggle{border:0;background:none;font:700 11px 'DM Sans';color:var(--coral-dark);cursor:pointer;min-height:44px;flex:none}
.private-safety.collapsed{padding:4px 14px;align-items:center}
.private-safety.collapsed p,.private-safety.collapsed #report-chat{display:none}
@media (max-width:720px){
  /* OBS-02 — détail de conversation plein écran : en-tête compact, historique scrollable,
     composeur toujours visible au-dessus de la navigation et du clavier virtuel */
  #messages.thread-open{padding:0}
  #messages.thread-open .page-head,#messages.thread-open .message-tabs,#messages.thread-open .private-safety,#messages.thread-open .friend-policy{display:none!important}
  #messages.thread-open .chat{display:flex!important;flex-direction:column;height:calc(100dvh - 70px - env(safe-area-inset-bottom) - var(--keyboard-offset,0px));min-height:0!important;border:0;border-radius:0;overflow:hidden}
  #messages.thread-open .chat-head{padding:8px 12px;border-bottom:1px solid var(--line);flex:none}
  #messages.thread-open .important{flex:none;margin:10px 12px 0}
  #messages.thread-open .chat-body{flex:1 1 auto;min-height:0;max-height:none!important;overflow:auto;padding:14px!important}
  #messages.thread-open .message-compose{position:static!important;flex:none;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff}
  /* Le composeur d'activité vit DANS la zone scrollable : sticky en bas de cette zone, pas derrière la nav */
  #messages.thread-open .activity-message-compose{position:sticky;bottom:0!important;z-index:2;margin:0 -14px -14px;border-radius:0}
}
/* OBS-04 — cartes de notification : acteur, objet, état non lu, carte entièrement cliquable */
.notification-list article{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:14px;margin-bottom:10px;background:#fff;cursor:pointer}
.notification-list article.unread{background:#fff7f2;border-color:#f2cdbd}
.notification-list article.unread>div>strong:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--coral);margin-right:7px;vertical-align:1px}
.notification-list article>img{width:44px;height:44px;border-radius:14px;object-fit:cover;flex:none}
.notification-list article>div{flex:1;min-width:0;display:grid;gap:3px}
.notification-context{font-size:12px;color:var(--muted)}
.notification-context strong{color:var(--ink)}
.notification-context em{font-style:normal;color:#287d69}
.notification-list article small{color:var(--muted);font-size:11px}
.notification-list article:focus-visible{outline:3px solid var(--coral);outline-offset:2px}
/* OBS-05 / OBS-06 — résultats de recherche membre : identité cliquable + actions selon l'état de la relation */
.member-results article{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:14px;margin-top:10px;flex-wrap:wrap;background:#fff}
.member-identity{display:flex;align-items:center;gap:10px;border:0;background:none;cursor:pointer;min-height:44px;font:inherit;color:inherit;text-align:left;flex:1;min-width:0;padding:0}
.member-identity img{width:40px;height:40px;border-radius:12px;object-fit:cover;flex:none}
.member-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto;align-items:center}
.member-actions button{min-height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 12px;cursor:pointer}
.relation-badge{background:var(--mint-pale);color:#287d69;border-radius:8px;padding:6px 9px;font-size:11px;font-weight:700}
/* OBS-01 / OBS-10 — formulaire d'authentification : erreurs visibles, liens de consentement */
#auth-form .form-feedback ul{margin:6px 0 0;padding-left:18px}
#auth-form .form-feedback[role="alert"]{color:#9f271f}
#auth-form [aria-invalid="true"]{border-color:#c22f21;box-shadow:0 0 0 2px rgba(194,47,33,.15)}
.consent-row{display:flex;align-items:center;gap:10px;justify-content:space-between}
.consent-row a{color:var(--coral-dark);font-weight:700;flex:none;min-height:44px;display:inline-flex;align-items:center}
/* Le composeur d'activité reste visible en bas de l'historique, sur bureau comme sur mobile */
.activity-message-compose{position:sticky;bottom:0;background:#fff;z-index:2}

/* ===== Sprint 1 (audit 18/07/2026) — Lot A handle + Lot B annuaire Membres ===== */
.person-handle{color:var(--coral-dark);font-weight:700;font-size:13px;margin:2px 0 6px}
.members-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end;background:#fdfbf8;border:1px solid var(--line);border-radius:18px;padding:16px;margin:10px 0 18px}
.members-filters label{display:grid;gap:6px;font-weight:700;font-size:12px}
.members-filters input,.members-filters select{min-width:0;padding:11px 12px}
.members-filters input[name=q]{width:220px}
.members-filters input[name=age_min],.members-filters input[name=age_max]{width:86px}
.members-filters .members-near{display:flex;align-items:center;gap:8px;min-height:44px}
.members-filters .primary{min-height:44px}
.members-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.member-card{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff}
.member-card .member-identity{align-items:center}
.member-card .member-identity span{display:grid;min-width:0}
.member-card .member-identity small{color:var(--coral-dark);font-weight:700}
.member-facts{display:flex;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.member-facts span{background:#f7f5f0;border-radius:8px;padding:5px 8px}
.member-facts .presence{background:var(--mint-pale);color:#287d69;font-weight:700}
.member-facts .presence-online:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#2fae8e;margin-right:5px}
.member-card .member-actions{margin-left:0}
#members-more{display:block;margin:18px auto 0;min-height:44px}
#members-count{color:var(--muted)}
.member-search .member-identity span{display:grid;min-width:0}
.member-search .member-identity small{color:var(--coral-dark);font-weight:700}
#guardrail-modal .guardrail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
#guardrail-modal .guardrail-actions button{min-height:48px;flex:1}
#person-share{min-height:44px}
@media(max-width:720px){.members-filters{padding:12px;gap:10px}.members-filters input[name=q]{width:100%}.members-filters label{flex:1 1 40%}.members-results{grid-template-columns:1fr}}

/* ===== Sprint 2 (audit 18/07/2026) — Lots D, F, G, H ===== */
/* Lot G — badges de rôle et commandes du propriétaire */
.role-badge{background:#fff0eb;color:var(--coral-dark);border-radius:8px;padding:4px 8px;font-size:10px;font-weight:800;letter-spacing:.4px}
.role-badge.cohost{background:var(--mint-pale);color:#287d69}
.person-row .row-handle{font-style:normal;font-weight:700;font-size:11px;color:var(--coral-dark)}
.person-row button:not(.person-profile){min-height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 10px;cursor:pointer;font-size:12px}
/* Lot H — fenêtre de chevauchement */
.conflict-modal .product-dialog{max-width:460px}
.conflict-list{margin:14px 0;padding-left:18px;display:grid;gap:8px}
.conflict-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.conflict-actions button{min-height:44px}
/* Lot F — visio guidée + bloc réservé aux participants */
.remote-helpers{display:flex;gap:10px;flex-wrap:wrap;align-items:center;background:#f7f5f0;border-radius:12px;padding:10px 12px;margin:8px 0}
.remote-helpers small{flex-basis:100%;color:var(--muted)}
.remote-helpers a{color:var(--coral-dark);font-weight:700;min-height:32px;display:inline-flex;align-items:center}
.detail-secret{background:var(--mint-pale);border:1px solid #bcd8c7;border-radius:16px;padding:16px;margin:14px 0}
.detail-secret h3{margin:0 0 8px}
.detail-secret p{margin:6px 0;word-break:break-word}
.detail-secret small{color:#3c6b57}
.detail-secret .remote-join{margin:4px 0 8px;display:inline-flex}
/* Lot D — Mes activités */
.my-activities-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.my-activities-tabs button{border:1px solid var(--line);background:#fff;border-radius:18px;padding:9px 13px;color:var(--muted);min-height:44px;cursor:pointer}
.my-activities-tabs button.active{background:var(--mint-pale);border-color:var(--mint);color:var(--ink)}
.my-activities-tabs b{background:var(--coral);color:#fff;border-radius:8px;padding:1px 6px;font-size:10px;margin-left:4px}
.my-activities-list{display:grid;gap:10px}
.my-activities-list article{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#fff;flex-wrap:wrap}
.my-activities-list article>div{display:grid;gap:4px;flex:1;min-width:200px}
.my-activities-list small{color:var(--muted)}
.my-activities-actions{display:flex;gap:8px;margin-left:auto}
.my-activities-actions button{min-height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 12px;cursor:pointer}
.state-badge{border-radius:8px;padding:4px 8px;font-size:10px;font-weight:700;background:#f0f0ec;color:var(--muted)}
.state-badge.state-upcoming{background:var(--mint-pale);color:#287d69}
.state-badge.state-pending,.state-badge.state-invited{background:#fff8df;color:#8a6d1a}
.state-badge.state-cancelled{background:#fdecea;color:#9f271f}
@media(max-width:720px){.my-activities-actions{width:100%;margin-left:0}.my-activities-actions button{flex:1}}

/* ===== Sprint 3 (audit 18/07/2026) — Lot E carte Explorer + Lot C Trouver une idée ===== */
.explore-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,44%);gap:18px;align-items:start}
.explore-layout .explore-list{margin:0}
.explore-map-wrap{position:sticky;top:16px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
#explore-map{height:520px;min-height:320px}
.explore-map-hint{margin:0;padding:10px 14px;font-size:11px;color:var(--muted);border-top:1px solid var(--line)}
.explore-view-toggle{display:none;gap:6px;margin-left:auto}
.explore-view-toggle button{border:1px solid var(--line);background:#fff;border-radius:12px;min-height:40px;padding:0 14px;color:var(--muted);cursor:pointer}
.explore-view-toggle button.active{background:var(--mint-pale);border-color:var(--mint);color:var(--ink)}
.explore-filters-panel{background:#fdfbf8;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:-20px 0 24px;display:grid;gap:6px}
.explore-filters-panel small{color:var(--muted)}
.result-meta{align-items:center}
@media(max-width:900px){
  .explore-view-toggle{display:flex}
  .explore-layout{display:block}
  .explore-layout[data-display="list"] .explore-map-wrap{display:none}
  .explore-layout[data-display="map"] .explore-list{display:none}
  .explore-map-wrap{position:static}
  #explore-map{height:62dvh}
}
/* Lot C — cartes d'idées */
.idea-blocks{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 16px}
.idea-blocks button{border:1px solid var(--line);background:#fff;border-radius:18px;min-height:44px;padding:0 14px;cursor:pointer}
.idea-blocks button:hover{background:var(--mint-pale)}
.idea-card{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;flex-wrap:wrap}
.idea-card>div{display:grid;gap:4px;flex:1;min-width:200px}
.idea-card small{color:var(--muted)}
.idea-cost{border-radius:8px;padding:3px 8px;font-size:10px;font-weight:700;background:#f0f0ec;color:var(--muted)}
.idea-cost-free{background:var(--mint-pale);color:#287d69}
.idea-cost-paid{background:#fff8df;color:#8a6d1a}
.idea-open{border:1px solid var(--line);border-radius:10px;min-height:44px;display:inline-flex;align-items:center;padding:0 12px;color:var(--ink);font-weight:700;text-decoration:none;background:#fff}
.idea-open:hover{background:var(--mint-pale)}
#idea-surprise{flex:none}
/* OBS-08 — suggestions de ville dans les formulaires profil/réglages */
.city-suggestions{position:relative;z-index:5}
.city-suggestions button{display:block;width:100%;text-align:left;border:1px solid var(--line);border-top:0;background:#fff;padding:10px 12px;cursor:pointer;font-size:12px}
.city-suggestions button:hover{background:var(--mint-pale)}

/* ===== Sprint 4 (audit 18/07/2026) — Qui sommes-nous + OBS-09 participants mobile ===== */
.about-body{display:grid;gap:20px;max-width:820px}
.about-body .legal-document{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px}
.about-body .legal-document p{line-height:1.75;color:#3c4b45}
.about-body h2{font:800 22px 'Baloo 2';margin:0 0 10px}
.sidebar .about-link{margin-top:8px;font-size:10px;color:var(--coral-dark);padding:0;min-height:0}
/* OBS-09 — grille participants sans débordement mobile */
.person-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--line)}
.person-row .person-profile{display:flex;align-items:center;gap:10px;border:0;background:none;cursor:pointer;text-align:left;min-height:44px;flex:1;min-width:180px;padding:0;font:inherit;color:inherit}
.person-row .person-profile img{width:42px;height:42px;border-radius:12px;object-fit:cover;flex:none}
.person-row .person-profile span{display:grid;gap:2px;min-width:0}
.person-row .person-profile strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person-row small{color:var(--muted)}
@media(max-width:720px){.person-row button:not(.person-profile){flex:1 1 45%}}

/* ===== Audit post-déploiement 18/07 (OBS-PD-01 → OBS-PD-16) ===== */
/* OBS-PD-05 (cause racine réelle, vérifiée en prod) — la règle générique `svg{width:18px;height:18px}` du thème
   écrasait AUSSI le <svg> d'overlay de Leaflet : les cercles étaient rendus dans une boîte de 18 px près de
   l'origine du pane (seuls les marqueurs <img> restaient lisibles). On restaure le dimensionnement intrinsèque
   de Leaflet dans ses conteneurs ; les attributs stroke/fill des tracés priment déjà sur l'héritage. */
.leaflet-container svg{width:auto!important;height:auto!important;min-width:0!important;min-height:0!important}
/* Garde générale : l'attribut [hidden] doit TOUJOURS masquer, même quand une règle auteur fixe display
   (bug récurrent dans les deux sens : panneau Filtres visible en permanence, bandeau .important vide affiché,
   placeholders restés visibles malgré hidden). Les éléments réellement affichés retirent l'attribut. */
[hidden]{display:none!important}
/* OBS-PD-02 — fiche profil compacte : en-tête sticky (avatar borné + nom + @handle + Fermer toujours visibles). */
.profile-dialog{--dialog-pad:28px}
@media(max-width:720px){.profile-dialog{--dialog-pad:22px}}
.profile-dialog .person-head{position:sticky;top:calc(-1*var(--dialog-pad));margin:calc(-1*var(--dialog-pad)) calc(-1*var(--dialog-pad)) 14px;padding:calc(var(--dialog-pad) - 8px) var(--dialog-pad) 12px;background:#fff;z-index:3;display:flex;gap:14px;align-items:center;border-bottom:1px solid var(--line);border-radius:24px 24px 0 0}
.profile-dialog .person-head .modal-close{position:static;margin-left:auto;flex:none}
.person-head-copy{display:grid;gap:2px;min-width:0}
.person-head-copy h2{margin:0;overflow:hidden;text-overflow:ellipsis}
.person-head-copy .person-handle{margin:0;color:var(--muted);font-weight:600}
#person-photo{width:clamp(96px,24vw,144px);height:clamp(96px,24vw,144px);border-radius:22px;object-fit:cover;flex:none}
#person-bio{margin-top:0}
/* OBS-PD-07 — le CTA n'écrase plus la carte : actions compactes à droite (pleine largeur seulement sur mobile). */
.notification-list article[data-notification-id]{cursor:pointer}
.notification-list .notification-actions{width:auto;margin-left:auto;align-self:center;flex:none}
.notification-list .notification-actions button{flex:none;font-size:13px}
@media(max-width:720px){.notification-list .notification-actions{width:100%;margin-left:0}}
/* OBS-PD-14 — lien sémantique des cartes Explorer. */
.activity-row h3 .activity-row-link{color:inherit;text-decoration:none}
.activity-row h3 .activity-row-link:hover{text-decoration:underline}
.activity-row-link:focus-visible{outline:3px solid #17392d;outline-offset:2px;border-radius:6px}
/* OBS-PD-15 — signalement reconnaissable : icône drapeau + libellé visible sur écran large, info-bulle ailleurs. */
#report-button .report-label{display:none}
@media(min-width:721px){.chat-actions #report-button{width:auto;padding:0 14px;display:inline-flex;align-items:center;gap:7px}#report-button .report-label{display:inline;font-weight:700;font-size:13px}}
/* OBS-PD-11 — note du sélecteur de langue. */
.language-picker .language-note{display:block;color:var(--muted);font-size:10px;line-height:1.3;margin-top:4px;font-weight:400}
/* OBS-PD-10 — message d'incohérence du filtre d'âge. */
#members-age-error{grid-column:1/-1;color:#a4361f;font-weight:700;margin:0}
/* OBS-PD-12 — feuille de route uniROK : timeline sémantique, lisible sans couleur (statut en toutes lettres). */
.rok-roadmap .roadmap-updated{color:var(--muted);font-size:13px}
.roadmap-steps{list-style:none;margin:18px 0 0;padding:0}
.roadmap-step{position:relative;padding:0 0 26px 30px;border-left:3px solid var(--line);margin-left:8px}
.roadmap-step:last-child{padding-bottom:4px}
.roadmap-step::before{content:'';position:absolute;left:-11.5px;top:2px;width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid var(--line);box-sizing:border-box}
.roadmap-step.is-current{border-left-color:var(--coral)}
.roadmap-step.is-current::before{border-color:var(--coral);background:var(--coral)}
.roadmap-step h3{margin:0 0 6px;font:800 16px 'Baloo 2'}
.roadmap-status{display:inline-block;margin:0 0 8px;padding:3px 10px;border-radius:999px;background:#f2f1ed;font-size:12px;font-weight:700}
.roadmap-step.is-current .roadmap-status{background:#fff3ef;color:var(--coral-dark)}
.roadmap-criteria{font-size:13px;color:var(--muted)}
/* ===== Rétention (audit post-déploiement 18/07, §5) — favoris, agenda .ics, liste d'attente ===== */
.favorite-star{margin-left:auto;border:0;background:none;font-size:20px;line-height:1;color:var(--coral);cursor:pointer;padding:6px}
.activity-row-footer{display:flex;align-items:center;gap:8px}
.join-extras{display:grid;gap:8px;margin-top:10px}
.join-extras .secondary{width:100%}
.waiting-position{background:var(--mint-pale);border-radius:10px;padding:9px 12px;font-size:12px;margin:10px 0 0}
.favorite-remind{font-size:12px}
.favorite-remind input{width:16px;height:16px}
.state-badge.state-full{background:#fff3ef;color:var(--coral-dark)}
.state-badge.state-cancelled{background:#fdeceb;color:#a4361f}

/* ===== Audit UX 19/07 — confiance, Mes activités, mobile et états fonctionnels ===== */
.page-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.public-footer{margin-left:260px;padding:24px 6vw 34px;display:flex;gap:10px 22px;flex-wrap:wrap;border-top:1px solid var(--line);background:#17392d;color:#fff;font-size:12px}
.public-footer a{color:#fff;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.public-footer a:hover,.public-footer a:focus-visible{text-decoration:underline;text-underline-offset:4px}
.legal-page .legal-document{max-width:900px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(20px,4vw,34px)}
.legal-page .legal-document p{line-height:1.75;color:#3c4b45}
.legal-warning{padding:14px 16px;border-left:4px solid #d99a22;background:#fff8e7;border-radius:8px}
.about-promise{max-width:900px;padding:22px 26px;border-radius:18px;background:var(--ink);color:#fff}.about-promise strong{font:800 clamp(20px,3vw,28px) 'Baloo 2'}.about-promise p{margin:8px 0 0;line-height:1.65;color:#e8f0ed}
.activities-mode{display:flex;gap:8px;margin:4px 0 20px}
.activities-mode button{min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-weight:700;cursor:pointer}
.activities-mode button.active{background:var(--ink);border-color:var(--ink);color:#fff}
#my-activities-workspace{max-width:1000px}
.calendar-mode-panel{max-width:1000px}
.reminder-unavailable{display:block;max-width:260px;color:var(--muted);line-height:1.35}
.conversation{width:100%;text-align:left;background:#fff;border:0;min-width:0}
.conversation .conversation-copy{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;min-width:0;flex:1;overflow:hidden}
.conversation .conversation-copy strong,.conversation .conversation-preview{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conversation .conversation-preview{color:var(--muted)}
.conversation .conversation-meta{color:var(--muted);font-size:10px}
#chat-title:focus:not(:focus-visible){outline:none}
.map-picker:has(.real-map){background:#fff;border:1px solid var(--line);box-shadow:0 8px 28px rgba(23,57,45,.08)}
.map-picker:has(.real-map)::before{display:none}
.map-stage{position:relative;min-height:300px;border-radius:14px;overflow:hidden;background:#eef2f0}
.map-stage .real-map{position:relative;z-index:1}
.map-loading{position:absolute;inset:0;z-index:2;display:grid;place-items:center;background:linear-gradient(90deg,#edf1ef 25%,#f7f9f8 50%,#edf1ef 75%);background-size:200% 100%;animation:map-skeleton 1.2s linear infinite;color:var(--ink);font-weight:700}
.map-stage.is-ready .map-loading{display:none}
@keyframes map-skeleton{to{background-position:-200% 0}}
.idea-submit-cta{display:flex;align-items:center;gap:18px;justify-content:space-between;margin:22px 0;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:var(--mint-pale)}
.idea-submit-cta p{margin:4px 0 0;color:var(--muted)}
.source-proposal-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:12px}
.idea-proposal-dialog{width:min(680px,100%)}
.idea-proposal-dialog input,.idea-proposal-dialog select,.idea-proposal-dialog textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #aebdb7;border-radius:12px;background:#fff;font:inherit}
.idea-proposal-dialog textarea{resize:vertical}
.idea-proposal-history{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.idea-proposal-history h3{margin:0 0 10px}
.idea-proposal-list{display:grid;gap:9px}.idea-proposal-list article{display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:12px;border:1px solid var(--line);border-radius:12px}.idea-proposal-list article div{display:grid}.idea-proposal-list article small{color:var(--muted)}.idea-proposal-list article p{grid-column:1/-1;margin:4px 0 0;font-size:12px}
.state-badge.state-published{background:var(--mint-pale);color:#176b59}.state-badge.state-refused{background:#fff0ed;color:#9c3f31}
.host-invite-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}.host-invite-tabs button{min-height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:700}.host-invite-tabs button.active{background:var(--ink);color:#fff}.host-invite-panel [data-invite-panel="external"]{display:grid;gap:10px}.host-invite-panel textarea{width:100%;min-height:110px;padding:10px;border:1px solid var(--line);border-radius:10px;font:inherit}.guest-edit-list,.guest-saved-list{display:grid;gap:8px}.guest-edit-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}.guest-edit-row input{min-width:0;padding:9px;border:1px solid var(--line);border-radius:8px}.guest-edit-row [name="group"],.guest-edit-row button{grid-column:1/-1}.guest-lawful{padding:10px;background:#fff8e7;border-radius:10px}.sms-unavailable{padding:10px;border-left:3px solid #d99a22;background:#fff8e7;font-size:12px}.guest-saved-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}.guest-saved-list label{display:flex;gap:8px;align-items:center}.guest-saved-list label span{display:grid;min-width:0}.guest-saved-list small{color:var(--muted);overflow-wrap:anywhere}.guest-saved-list article>small,.guest-saved-list article>button{grid-column:1/-1}.guest-rsvp-dialog{width:min(560px,100%)}.guest-rsvp-dialog input{width:100%;min-height:48px;padding:0 12px;border:1px solid #aebdb7;border-radius:12px;font:inherit}.guest-code-row{display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px}.guest-code-row button{min-height:48px}.guest-rsvp-event{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--mint-pale)}.guest-rsvp-event h3{font:800 24px 'Baloo 2';margin:6px 0}.guest-rsvp-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.guest-rsvp-actions button{min-height:48px}.guest-rsvp-success{text-align:center}.guest-rsvp-success>span{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;margin:0 auto;background:var(--mint-pale);color:#176b59;font-size:28px;font-weight:800}
.guest-edit-row.has-error{border-color:#c4523e;background:#fff8f6}.guest-edit-row.has-warning{border-color:#d99a22;background:#fffdf7}.guest-edit-row input[aria-invalid="true"]{border-color:#b63d2d;box-shadow:0 0 0 2px #b63d2d22}.guest-edit-row [name="group"],.guest-edit-row>button,.guest-line-label,.guest-row-issues{grid-column:1/-1}.guest-line-label{font-size:11px;font-weight:800;color:var(--muted)}.guest-row-issues{display:grid;gap:4px}.guest-row-issues:empty{display:none}.guest-issue{margin:0;padding:7px 9px;border-radius:8px;font-size:12px;line-height:1.4}.guest-issue-error{background:#fdeceb;color:#8d2f21}.guest-issue-warning{background:#fff3cf;color:#735600}.guest-row-issues .text-link{justify-self:start;min-height:40px}

@media(max-width:720px){
  .public-footer{margin-left:0;padding:24px 18px calc(100px + env(safe-area-inset-bottom))}
  .public-footer a{flex:1 1 calc(50% - 12px)}
  .page-head-actions{width:100%;justify-content:flex-start}
  .idea-submit-cta{align-items:flex-start;flex-direction:column}
  .idea-submit-cta .secondary{width:100%}
  .calendar-view .calendar-mode-panel .calendar-shell{display:block;overflow-x:auto}
  .calendar-view .calendar-mode-panel .calendar-toolbar,.calendar-view .calendar-mode-panel .calendar-week,.calendar-view .calendar-mode-panel .calendar-grid{min-width:680px}
  .guest-rsvp-actions{grid-template-columns:1fr}.guest-code-row{grid-template-columns:1fr}.guest-edit-row{grid-template-columns:1fr}.guest-edit-row [name="group"],.guest-edit-row>button,.guest-line-label,.guest-row-issues{grid-column:auto}
}

/* Audit UX 19/07/2026 — navigation hiérarchisée, états bloqués et messagerie compacte. */
.sidebar{padding-top:22px}
.brand-tagline{margin-bottom:18px}
.desktop-nav{gap:3px}
.nav-section-label{margin:12px 12px 3px;color:#8b9692;font-size:9px;font-weight:800;letter-spacing:1.4px}
.desktop-nav .nav-item{width:100%;padding:9px 11px;border-radius:13px;font-size:13px;min-height:40px}
.desktop-nav .calendar-link{background:var(--mint-pale);color:var(--ink)}
.desktop-nav .calendar-link small{display:block}
.nav-more{margin-top:3px;border-top:1px solid var(--line);padding-top:5px}
.nav-more summary{list-style:none;cursor:pointer;padding:9px 12px;color:var(--muted);font-size:12px;font-weight:800}
.nav-more summary::-webkit-details-marker{display:none}
.nav-more summary:after{content:'＋';float:right}
.nav-more[open] summary:after{content:'−'}
.nav-more>div{display:grid;gap:2px}
.sidebar-tools{margin-top:12px;padding-top:10px}
.host-tools-note,.finished-edit-note{padding:11px 12px;border-radius:12px;background:#fff4df;color:#684b13;font-size:12px;line-height:1.45}
.finished-edit-note{margin:0 0 18px;border:1px solid #ead19c}
.activity-cover-picker{display:grid;gap:12px}
.activity-cover-picker h3,.activity-cover-picker p{margin:0}
.message-actions{position:relative;margin-left:auto}
.message-actions summary{list-style:none;cursor:pointer;border:0;border-radius:999px;padding:0 6px;font-weight:800;letter-spacing:1px}
.message-actions summary::-webkit-details-marker{display:none}
.message-actions>div{position:absolute;right:0;bottom:calc(100% + 6px);z-index:8;display:grid;min-width:180px;padding:6px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.message-actions button{border:0;background:transparent;padding:9px 10px;text-align:left;border-radius:8px;color:inherit;cursor:pointer}
.message-actions button:hover{background:var(--mint-pale)}
.message-actions .msg-delete:last-child{color:#a43f35}
.activity-cover-picker>div:first-child p{margin-top:4px;color:var(--muted);font-size:12px}
.activity-cover-drop{position:relative;display:grid!important;place-items:center;gap:5px;min-height:118px!important;padding:18px;border:2px dashed #afc2bb;border-radius:16px;background:#f5faf8;text-align:center;cursor:pointer}
.activity-cover-drop input{position:absolute;inline-size:1px;block-size:1px;opacity:0}
.activity-cover-drop span{font-weight:800;color:var(--ink)}
.activity-cover-drop small{font-weight:500;color:var(--muted)}
.activity-cover-drop:focus-within{outline:3px solid var(--ink);outline-offset:2px}
.activity-cover-preview{position:relative;overflow:hidden;border-radius:16px;background:#edf2ef}
.activity-cover-preview img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.activity-cover-preview .text-link{position:absolute;right:10px;bottom:10px;padding:9px 12px;border-radius:10px;background:rgba(255,255,255,.94)}
.activity-cover-feedback{min-height:18px;color:var(--coral-dark);font-size:12px;font-weight:700}
.live-sync-status{display:inline-flex;align-items:center;gap:7px;margin-top:7px;color:var(--muted);font-size:12px;font-weight:700}
.live-sync-status i{width:8px;height:8px;border-radius:50%;background:#2d9d70;box-shadow:0 0 0 3px rgba(45,157,112,.14)}
.live-sync-status.is-retry i{background:#d7872f;box-shadow:0 0 0 3px rgba(215,135,47,.14);animation:live-sync-pulse 1.2s ease-in-out infinite}
.live-sync-status.is-paused i{background:#98a39f;box-shadow:none}
@keyframes live-sync-pulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.live-sync-status.is-retry i{animation:none}}
button:disabled,.primary:disabled,.secondary:disabled,.text-link:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none;filter:grayscale(.25)}
.message-compose{align-items:center;min-height:72px}
.message-compose input{height:46px;min-height:46px}
.message-compose button{height:46px;min-height:46px;align-self:center}
#chat-title:focus{outline:none}
.private-safety{padding:10px 12px}
.private-safety #report-chat{display:none}
.bubble.mine small{color:#c8d8d2}
@media(max-width:720px){
  .private-safety.show{min-height:48px}
  .private-safety.collapsed{flex-wrap:nowrap;margin-bottom:10px}
  .private-safety.collapsed .safety-toggle{margin-left:auto;white-space:nowrap}
}
@media(max-width:420px){
  #idea-filters.members-filters{grid-template-columns:1fr!important}
  #idea-filters.members-filters>label,#idea-filters.members-filters>button{width:100%;min-width:0}
  #idea-filters input,#idea-filters select,#idea-filters button{min-height:44px;width:100%}
}

/* Messagerie enrichie : la piste centrale est la seule zone scrollable. Sans min-height:0,
   la taille intrinsèque des bulles repoussait le composeur sous le conteneur masqué. */
#messages .message-layout{min-height:0}
#messages .conversation-list{min-height:0;overflow-y:auto;overscroll-behavior:contain}
#messages .chat{min-width:0;min-height:0;overflow:hidden;grid-template-rows:auto auto minmax(0,1fr) auto}
#messages .chat-body{min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
#messages.mode-private .message-compose.rich-message-compose{display:grid}
#messages.mode-activities .message-compose{display:none}
.rich-message-compose{grid-template-columns:1fr;gap:8px;padding:10px 13px;background:#fff;border-top:1px solid var(--line);min-height:0}
.compose-tools{display:flex;gap:6px;align-items:center}
.compose-tools button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:34px!important;height:34px!important;width:auto!important;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:#f6f5f1;color:var(--ink);font:700 11px 'DM Sans'}
.compose-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.compose-row input[name="message"]{width:100%;height:46px;min-height:46px}
.compose-row button[type="submit"],.compose-row .primary{width:auto;min-width:48px;height:46px;min-height:46px;padding:0 16px;border-radius:12px}
.compose-feedback{min-height:17px;margin:0;color:var(--coral-dark);font-size:11px;font-weight:700}
.bubble{position:relative;gap:8px;min-width:150px;overflow-wrap:anywhere}
.bubble.is-pinned{box-shadow:0 0 0 2px rgba(244,185,66,.55)}
.pinned-label{justify-self:start;padding:3px 7px;border-radius:8px;background:#fff2bf;color:#735711;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.4px}
.message-text{white-space:pre-wrap}
.message-image{position:relative;display:block;overflow:hidden;border-radius:12px;background:#eaf0ed}
.message-image img{display:block;width:min(100%,360px);max-height:360px;object-fit:contain}
.message-image>span{position:absolute;right:8px;bottom:8px;padding:4px 7px;border-radius:7px;background:rgba(23,57,45,.86);color:#fff;font-size:9px;font-weight:900}
.message-file{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid currentColor;border-radius:11px;color:inherit;text-decoration:none}
.message-file small{color:inherit!important;text-align:right!important;white-space:nowrap}
.message-poll{display:grid;gap:9px;min-width:min(300px,60vw)}
.message-poll>div{display:grid;gap:6px}
.message-poll button{display:flex;justify-content:space-between;gap:10px;width:100%;min-height:38px;padding:8px 10px;border:1px solid #c8d4cf;border-radius:10px;background:#fff;color:var(--ink);text-align:left}
.message-poll button.selected{border-color:var(--coral);box-shadow:inset 4px 0 0 var(--coral)}
.message-poll>small{color:inherit!important;text-align:left!important}
.bubble footer{display:flex;align-items:center;justify-content:flex-end;gap:9px}
.bubble footer small{margin-right:auto;text-align:left}
.bubble footer button{border:0;background:none;color:inherit;padding:4px;font:700 9px 'DM Sans';text-decoration:underline;cursor:pointer}
.bubble.mine .message-poll button{background:#f8fbfa;color:var(--ink)}
.bubble.mine .pinned-label{background:#fff2bf;color:#735711}
#messages .important{margin:10px 18px 0;align-items:center}
.poll-dialog{width:min(560px,calc(100vw - 28px))}
.poll-dialog form,.poll-dialog fieldset{display:grid;gap:10px}
.poll-dialog fieldset{border:0;padding:0;margin:8px 0}
.poll-dialog label{display:grid;gap:6px;font-weight:700;font-size:12px}
.poll-dialog [data-poll-options] label>span{display:grid;grid-template-columns:1fr auto;gap:6px}
.poll-dialog [data-remove-poll-option]{width:44px;border:1px solid var(--line);border-radius:10px;background:#fff}
@media(max-width:900px) and (min-width:721px){#messages .chat{height:68dvh;max-height:760px}}
@media(max-width:720px){
  #messages .chat{overflow:visible}
  #messages .chat-body{max-height:48dvh!important;min-height:38dvh}
  .rich-message-compose{position:sticky;bottom:calc(70px + env(safe-area-inset-bottom) + var(--keyboard-offset,0px));z-index:5}
  .compose-tools button span{display:none}
  .compose-tools button{padding-inline:9px}
  .message-poll{min-width:min(260px,72vw)}
  .message-image img{max-height:260px}
}
.activity-card-link{color:inherit;text-decoration:none}
.activity-card-link:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:5px}
.seo-discovery-links{margin:22px 5vw 95px calc(260px + 5vw);padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--ink)}
.seo-discovery-links strong{display:block;margin-bottom:12px;font:800 18px 'Baloo 2'}
.seo-discovery-links>div{display:flex;gap:8px;flex-wrap:wrap}
.seo-discovery-links a{padding:8px 11px;border-radius:10px;background:var(--mint-pale);color:var(--ink);font-size:12px;font-weight:700;text-decoration:none}
.public-city-field{margin-top:12px}
.public-city-field small{display:block;margin-top:5px;color:var(--muted);font-weight:500}
.activity-seo-status{margin-top:16px;padding:15px;border:1px solid var(--line);border-radius:16px;text-align:left}
.activity-seo-status.is-ready{background:#edf7f0;border-color:#a9cdb5}
.activity-seo-status.needs-work{background:#fff7ed;border-color:#f0b98f}
.activity-seo-status strong{display:block;margin-bottom:5px}
.activity-seo-status p,.activity-seo-status ul{margin:6px 0 12px;font-size:13px;line-height:1.45}
.activity-seo-status ul{padding-left:18px}
.activity-seo-status .secondary{width:100%}
@media(max-width:1050px) and (min-width:721px){.public-footer{margin-left:210px}.seo-discovery-links{margin-left:calc(210px + 5vw)}}
@media(max-width:720px){.seo-discovery-links{margin:18px 18px 100px}}

/* Le parcours initial appartient au compte connecté : contenu utile, persistant et sans débordement. */
.onboarding-card{max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain}
.onboarding-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:14px 0 24px}.onboarding-progress i{height:4px;border-radius:8px;background:#e4e8e5}.onboarding-progress i.active{background:var(--coral)}
.onboarding-card [data-onboarding-panel]{display:grid;gap:12px}.onboarding-card [data-onboarding-panel][hidden]{display:none}.onboarding-card [data-onboarding-panel] h2{margin:0}.onboarding-card [data-onboarding-panel]>p{margin:0 0 4px;color:var(--muted);line-height:1.55}
.onboarding-zone-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.onboarding-zone-row input{min-width:0}.onboarding-card .place-results{max-height:150px;overflow:auto}.onboarding-card .place-results button{display:block;width:100%;padding:11px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;font-weight:700}.onboarding-zone-summary,.onboarding-feedback{min-height:18px;margin:0;color:var(--muted);font-size:12px}.onboarding-feedback{color:var(--coral-dark);font-weight:700}
.onboarding-safety{display:flex;gap:10px;padding:12px;border-radius:14px;background:var(--mint-pale)}.onboarding-safety p{margin:0;font-size:12px;line-height:1.45}.onboarding-card .switch-row{margin:3px 0}.onboarding-actions{gap:12px}.onboarding-actions small{margin-left:auto}.onboarding-actions .primary{flex:none}
@media(max-width:720px){.onboarding-zone-row{grid-template-columns:1fr}.onboarding-card{max-height:calc(100dvh - 24px)}.onboarding-actions{position:sticky;bottom:-22px;margin:12px -22px -22px;padding:12px 22px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line)}}

/* Messagerie sociale : identité visible, épingles multi-portées, archives et retour rapide au récent. */
#messages:not(.mode-private) .private-safety,#messages.mode-subscriptions .friend-policy{display:none}
#messages .chat{position:relative}
#messages .chat-head{align-items:center;gap:12px}.chat-person{display:flex!important;align-items:center;gap:11px;min-width:0}.chat-person>span{display:grid;min-width:0}.chat-person strong,.chat-person small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-profile-avatar,.message-avatar{flex:none;border:0;border-radius:50%;padding:0;background:transparent;overflow:hidden;cursor:pointer}.chat-profile-avatar{width:44px;height:44px}.message-avatar{width:32px;height:32px}.chat-profile-avatar img,.message-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.message-cluster{display:flex;align-items:flex-end;gap:8px;width:100%;margin:10px 0}.message-cluster.mine{flex-direction:row-reverse}.message-cluster .bubble{margin:0;max-width:min(72%,620px)}.message-cluster.mine .bubble{margin:0}.message-author{justify-self:start;border:0;background:none;padding:0;color:inherit;font-weight:800;cursor:pointer}.pin-actions{display:flex;justify-content:flex-end;gap:4px;flex-wrap:wrap}.bubble footer .pin-actions button{white-space:nowrap}
.message-image-fallback{display:block;padding:14px;color:inherit;text-decoration:underline;font-weight:800}.message-image-fallback[hidden]{display:none}
#messages .important{padding:0;background:#fff8df;overflow:hidden}#messages .important>button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:11px 13px;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}#messages .important span:nth-child(2){display:grid;min-width:0}#messages .important small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}#messages .important b{font-size:10px;color:var(--coral-dark)}
.pinned-dialog{width:min(620px,calc(100vw - 28px))}.pinned-list{display:grid;gap:8px;max-height:60dvh;overflow:auto}.pinned-list>button{display:grid;gap:4px;width:100%;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff;text-align:left;cursor:pointer}.pinned-list>button span{color:var(--coral-dark);font-size:10px;font-weight:900;text-transform:uppercase}.pinned-list>button small{color:var(--muted)}.message-highlight{animation:message-highlight 1.8s ease}@keyframes message-highlight{0%,100%{box-shadow:0 0 0 0 rgba(233,109,58,0)}30%,70%{box-shadow:0 0 0 5px rgba(233,109,58,.35)}}
.chat-jump-bottom{position:absolute;right:18px;bottom:125px;z-index:8;min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--ink);box-shadow:0 8px 25px rgba(23,57,45,.18);font-weight:800;cursor:pointer}.chat-jump-bottom[hidden]{display:none}
.conversation-section-label{padding:10px 15px;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.8px}.conversation-archives{border-top:1px solid var(--line)}.conversation-archives summary{padding:14px 16px;color:var(--ink);font-weight:800;cursor:pointer}.conversation-archives .conversation{width:100%;background:#fbfbf9;text-align:left}.archived-chat-note{grid-row:4;margin:0;padding:14px;border-top:1px solid var(--line);background:#f5f3ee;color:var(--muted);font-size:12px;text-align:center}
.subscription-feed{display:grid;gap:10px}.subscription-feed>header{display:grid;margin-bottom:4px}.subscription-feed>header small{color:var(--muted)}.subscription-feed article{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff}.subscription-feed article>img{width:92px;height:92px;border-radius:12px;object-fit:cover;background:var(--mint-pale)}.subscription-feed article>div{display:grid;align-content:center;gap:4px}.subscription-feed article span{color:var(--coral-dark);font-size:9px;font-weight:900;text-transform:uppercase}.subscription-feed article small{color:var(--muted)}.subscription-feed article button{justify-self:start;border:0;background:none;padding:3px 0;color:var(--ink);font-weight:900;text-decoration:underline;cursor:pointer}.creator-profile-card{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding:12px;border-radius:14px;background:var(--mint-pale)}.creator-profile-card span{color:var(--coral-dark);font-size:10px;font-weight:900;text-transform:uppercase}.creator-profile-card button{margin-left:auto}
.blocked-users{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.blocked-users article{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.blocked-users img{width:42px;height:42px;border-radius:50%;object-fit:cover}.blocked-users article>span{display:grid}.blocked-users small{color:var(--muted)}
@media(max-width:720px){.message-cluster .bubble{max-width:calc(100% - 42px)}.message-avatar{width:28px;height:28px}.pin-actions{width:100%}.bubble footer{flex-wrap:wrap}.chat-jump-bottom{right:12px;bottom:116px}.subscription-feed article{grid-template-columns:72px minmax(0,1fr)}.subscription-feed article>img{width:72px;height:72px}.blocked-users article{grid-template-columns:38px minmax(0,1fr)}.blocked-users article>button{grid-column:2;justify-self:start}.creator-profile-card button{width:100%;margin-left:0}}

/* Accueil connecté = tableau de bord contextuel, distinct d’Explorer et de Créer. */
.home-command{display:flex;align-items:end;justify-content:space-between;gap:28px;margin:18px 5vw 28px;padding:32px;border-radius:26px;background:linear-gradient(135deg,var(--ink),#255b49);color:#fff;overflow:hidden}.home-command>div:first-child{max-width:720px}.home-command h1{max-width:700px;margin:7px 0;font:800 clamp(30px,4vw,52px)/1.02 'Baloo 2';letter-spacing:-1.5px}.home-command p{max-width:650px;margin:0;color:#dce9e3;line-height:1.55}.home-command-actions{display:flex;gap:9px;flex-wrap:wrap;flex:none}.home-command .secondary{background:#fff}.home-command .primary{box-shadow:none}
.home-pulse-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start;margin:0 5vw 70px}.home-nearby{min-width:0}.home-nearby .section-heading{margin:0 0 18px}.home-nearby .activity-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0}.home-glance{display:grid;gap:8px;position:sticky;top:18px;padding:18px;border:1px solid var(--line);border-radius:20px;background:#fff}.home-glance h2{margin:0 0 4px;font:800 20px 'Baloo 2'}.home-glance>button{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:12px;border:0;border-radius:13px;background:#f6f7f3;color:var(--ink);text-align:left;cursor:pointer}.home-glance>button:hover{background:var(--mint-pale)}.home-glance>button>span:nth-child(2){display:grid}.home-glance small{color:var(--muted)}.home-glance b{display:grid;place-items:center;min-width:25px;height:25px;border-radius:9px;background:var(--coral);color:#fff;font-size:11px}
#dashboard-weekend-strip{display:none!important}
@media(max-width:1050px){.home-pulse-grid{grid-template-columns:1fr}.home-glance{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.home-glance h2{grid-column:1/-1}}
@media(max-width:720px){.home-command{align-items:stretch;flex-direction:column;margin:8px 18px 28px;padding:22px 18px}.home-command h1{font-size:34px}.home-command-actions{display:grid}.home-command-actions>*{width:100%}.home-pulse-grid{margin:0 18px 50px}.home-nearby .activity-grid{display:grid;grid-template-columns:1fr;overflow:visible;padding:0}.home-nearby .activity-card{min-width:0}.home-glance{grid-template-columns:1fr}.home-glance h2{grid-column:auto}}

/* ===== Découverte géographique et messagerie — 20/07/2026 ===== */
.search-zone-control{position:relative;z-index:35}
.location-pill{cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}
.location-pill:hover,.location-pill[aria-expanded="true"]{border-color:#9ab7ab;box-shadow:0 9px 28px rgba(23,57,45,.12);transform:translateY(-1px)}
.search-zone-popover{position:absolute;z-index:80;left:0;top:calc(100% + 10px);width:min(430px,calc(100vw - 32px));padding:18px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(23,57,45,.2)}
.search-zone-popover-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:13px}
.search-zone-popover-head>div{display:grid;gap:3px}.search-zone-popover-head small{color:var(--coral-dark);font-weight:900;letter-spacing:1px}.search-zone-popover-head strong{font:800 20px 'Baloo 2'}
.search-zone-popover form{display:grid;gap:10px}.search-zone-popover form>label{font-size:12px;font-weight:800}.search-zone-query-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.search-zone-query-row input{min-width:0}
.search-zone-popover .place-results{max-height:170px;overflow:auto}.search-zone-popover .place-results button{width:100%;padding:11px;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);text-align:left;font-weight:700;cursor:pointer}
.search-radius-control{display:grid!important;grid-template-columns:1fr auto;gap:8px!important;padding:12px;border-radius:15px;background:var(--mint-pale)}.search-radius-control output{color:var(--coral-dark);font-weight:900}.search-radius-control input{grid-column:1/-1;width:100%;padding:0;accent-color:var(--coral)}
.search-zone-summary{margin:0;color:var(--muted);font-size:12px}.search-zone-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}.search-zone-actions .text-link{text-align:left}
.location-override{display:grid;grid-template-columns:minmax(260px,1fr) minmax(180px,280px);gap:10px 16px;align-items:center;max-width:820px;padding:14px;border:1px solid var(--line);border-radius:18px;background:#fbfaf7}
#explore .location-override .place-search>div:first-of-type{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.explore-radius-control{display:grid;grid-template-columns:auto minmax(90px,1fr) auto;align-items:center;gap:9px;font-size:12px;font-weight:800}.explore-radius-control input{width:100%;padding:0;accent-color:var(--coral)}.explore-radius-control output{min-width:50px;color:var(--coral-dark);font-weight:900;text-align:right}
.explore-zone-summary{grid-column:1/-1;margin:0;color:var(--muted);font-size:12px}.location-override>#explore-place-reset{grid-column:1/-1;justify-self:start}
.explore-results-section{display:grid;gap:11px;margin-bottom:22px}.explore-results-section>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:16px;background:#f7f7f3}.explore-results-section>header>div{display:flex;align-items:center;gap:11px}.explore-results-section>header h2{margin:0;font:800 18px 'Baloo 2'}.explore-results-section>header p{margin:1px 0 0;color:var(--muted);font-size:11px}.explore-results-section>header>strong{display:grid;place-items:center;min-width:30px;height:30px;border-radius:10px;background:#fff}.section-mode-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--ink);color:#fff;font-weight:900}.remote-results{padding:12px;border-radius:20px;background:linear-gradient(145deg,#edf6ef,#f7fbf8)}.remote-results>header{padding:4px 2px;background:transparent}.remote-results .section-mode-icon{background:#2d8d75}.explore-results-section>div{display:grid;gap:11px}.activity-row.is-remote{border-color:#bcd6c5;background:rgba(255,255,255,.92)}.place-badge{font-weight:700}.distance-badge{padding:4px 7px;border-radius:8px;background:#fff1e9;color:var(--coral-dark);font-weight:900}
.explore-map-wrap{border-radius:24px;box-shadow:0 18px 45px rgba(23,57,45,.12)}#explore-map{background:#e9efea}.explore-map-hint{background:#fff}
.lr-map-marker-shell{border:0!important;background:transparent!important}.lr-map-marker{display:grid;place-items:center;min-width:70px;height:34px;padding:0 10px;border:2px solid #fff;border-radius:18px;background:#fff;color:var(--ink);box-shadow:0 6px 18px rgba(23,57,45,.28);font:900 11px 'DM Sans';white-space:nowrap;transition:transform .15s,background .15s,color .15s}.lr-map-marker:after{content:"";position:absolute;left:50%;bottom:-6px;width:10px;height:10px;background:inherit;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:translateX(-50%) rotate(45deg)}.lr-map-marker-shell.is-active .lr-map-marker,.lr-map-marker-shell:focus .lr-map-marker{background:var(--ink);color:#fff;transform:scale(1.08)}
.lr-search-center-shell{border:0!important;background:transparent!important;display:flex!important;align-items:center;gap:7px}.lr-search-center-dot{display:block;width:18px;height:18px;border:5px solid #fff;border-radius:50%;background:var(--coral);box-shadow:0 5px 15px rgba(233,109,58,.5)}.lr-search-center-shell b{padding:6px 9px;border-radius:9px;background:rgba(255,255,255,.94);box-shadow:0 4px 13px rgba(23,57,45,.16);font-size:11px;white-space:nowrap}
.lr-activity-popup .leaflet-popup-content-wrapper{padding:0;border-radius:17px;overflow:hidden;box-shadow:0 18px 42px rgba(23,57,45,.2)}.lr-activity-popup .leaflet-popup-content{width:300px!important;margin:0}.lr-map-popup-card{display:grid;grid-template-columns:92px 1fr;min-height:112px;background:#fff}.lr-map-popup-card>img{width:92px;height:100%;min-height:112px;object-fit:cover}.lr-map-popup-card>div{display:grid;align-content:center;gap:4px;padding:12px}.lr-map-popup-card span{color:var(--coral-dark);font-size:10px;font-weight:900}.lr-map-popup-card strong{font:800 15px/1.2 'Baloo 2'}.lr-map-popup-card small{color:var(--muted);font-size:10px}.lr-map-popup-card a{justify-self:start;margin-top:3px;color:var(--ink);font-size:11px;font-weight:900}
.gif-dialog{width:min(720px,calc(100vw - 28px))}.gif-dialog>p{margin-top:0;color:var(--muted);font-size:12px}.gif-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.gif-suggestions{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.gif-suggestions button{padding:7px 10px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-weight:700;cursor:pointer}.gif-feedback{min-height:18px;margin:8px 0;color:var(--muted);font-size:12px}.gif-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:55dvh;overflow:auto}.gif-results button{position:relative;min-height:120px;padding:0;border:0;border-radius:13px;overflow:hidden;background:#e7efeb;cursor:pointer}.gif-results img{display:block;width:100%;height:150px;object-fit:cover}.gif-results span{position:absolute;right:7px;bottom:7px;padding:5px 8px;border-radius:8px;background:rgba(23,57,45,.9);color:#fff;font-size:10px;font-weight:900}.gif-results button:hover,.gif-results button:focus-visible{outline:3px solid var(--coral);outline-offset:2px}.gif-attribution{display:block;margin-top:9px;color:var(--muted)}
/* Un historique long ne participe jamais à la hauteur intrinsèque du composeur. */
#messages .message-layout{height:clamp(440px,calc(100dvh - 250px),760px)!important;min-height:0!important;overflow:hidden!important}
#messages .chat{display:grid;height:100%;max-height:100%;min-height:0!important;overflow:hidden!important;grid-template-rows:auto auto minmax(0,1fr) auto!important}
#messages .chat-head{grid-row:1}#messages .important{grid-row:2}#messages .chat-body{grid-row:3}#messages .rich-message-compose{grid-row:4;min-height:108px}
#messages .chat-body{min-height:0!important;max-height:none!important;overflow-y:auto!important;overscroll-behavior:contain}
#messages .rich-message-compose{position:relative!important;inset:auto!important;z-index:6;flex:none;margin:0!important;background:#fff}
#messages .activity-message-compose{position:relative!important;bottom:auto!important}
#messages .compose-feedback:empty{display:none}
@media(max-width:720px){
  .search-zone-popover{position:fixed;left:16px;right:16px;top:76px;width:auto;max-height:calc(100dvh - 100px);overflow:auto}.search-zone-query-row{grid-template-columns:1fr}.search-zone-actions{align-items:stretch;flex-direction:column-reverse}.search-zone-actions>*{width:100%}
  .location-override{grid-template-columns:1fr;padding:12px}.explore-radius-control{grid-template-columns:auto 1fr auto}.explore-results-section>header h2{font-size:16px}.remote-results{padding:9px}.gif-results{grid-template-columns:repeat(2,minmax(0,1fr))}.gif-results img{height:130px}
  #messages.thread-open .message-layout{display:block!important;height:calc(100dvh - 70px - env(safe-area-inset-bottom) - var(--keyboard-offset,0px))!important;overflow:hidden!important}
  #messages.thread-open .chat{height:100%!important;max-height:100%!important;display:flex!important;flex-direction:column}
  #messages.thread-open .chat-body{flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow-y:auto!important}
  #messages.thread-open .rich-message-compose{position:relative!important;bottom:auto!important;flex:0 0 auto!important;margin:0!important;padding:8px 10px calc(8px + env(safe-area-inset-bottom))!important}
}

/* Lot 4 — Profil vivant : centres d'interet, passions, accroches */
.profile-interests,.profile-prompts{border:1px solid var(--line);border-radius:18px;padding:14px 16px;margin:0 0 14px}
.profile-interests>legend,.profile-prompts>legend{font-weight:700;color:var(--ink);padding:0 6px;font-size:.95rem}
.interest-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.interest-chip{display:inline-flex;align-items:center;cursor:pointer}
.interest-chip input{position:absolute;opacity:0;width:1px;height:1px}
.interest-chip span{display:inline-block;border:1px solid var(--line);background:#fff;border-radius:22px;padding:7px 13px;color:var(--muted);font-size:.9rem;transition:background .15s,color .15s,border-color .15s}
.interest-chip input:checked+span{background:var(--coral);border-color:var(--coral);color:#fff}
.interest-chip input:focus-visible+span{outline:2px solid var(--coral-dark);outline-offset:2px}
.profile-passions{display:block;margin:0 0 14px}
.profile-passions input{width:100%}
.profile-prompts label{display:block;margin-top:10px}
.profile-prompts textarea{width:100%;resize:vertical}
.person-chips{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}
.chip-tag{display:inline-block;border-radius:20px;padding:5px 12px;font-size:.86rem;background:rgba(233,109,58,.1);color:var(--coral-dark);border:1px solid rgba(233,109,58,.25)}
.chip-tag.passion{background:var(--ink);color:#fff;border-color:var(--ink)}
.person-prompts{margin:12px 0 0;display:grid;gap:10px}
.person-prompts .prompt-row{background:#faf6ef;border-radius:14px;padding:10px 14px}
.person-prompts dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:3px}
.person-prompts dd{margin:0;color:var(--ink);font-size:.95rem}

/* Lot 5 — messagerie : accuses de lecture, suppression, tombstone, themes de conversation */
.read-receipt{font-size:.72rem;margin-left:4px;opacity:.65;font-weight:700}
.read-receipt.read{color:#2f74e0;opacity:1}
.bubble .pin-actions .msg-delete{color:#c0392b}
.bubble.is-deleted{opacity:.85}
.message-text.deleted{opacity:.6;font-style:italic}
.convo-theme-picker{position:relative;display:inline-flex}
#messages:not(.mode-private) .convo-theme-picker{display:none}
.convo-theme-toggle{background:none;border:1px solid var(--line);border-radius:50%;width:38px;height:38px;font-size:1.05rem;cursor:pointer;line-height:1}
.convo-theme-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 34px rgba(23,57,45,.16);padding:8px;display:grid;gap:2px;min-width:210px}
.convo-theme-menu[hidden]{display:none}
.convo-theme-swatch{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;border-radius:10px;padding:8px 10px;cursor:pointer;color:var(--ink);font-size:.9rem;text-align:left}
.convo-theme-swatch:hover{background:#faf6ef}
.convo-theme-swatch.active{background:var(--coral);color:#fff}
.convo-theme-swatch .swatch-dot{width:18px;height:18px;border-radius:50%;flex:0 0 auto;border:1px solid rgba(0,0,0,.1)}
.convo-theme-swatch.theme-default .swatch-dot{background:#ece3d6}
.convo-theme-swatch.theme-sunset .swatch-dot{background:linear-gradient(135deg,#ff9a5a,#ff5f7e)}
.convo-theme-swatch.theme-ocean .swatch-dot{background:linear-gradient(135deg,#5ab8ff,#2f74e0)}
.convo-theme-swatch.theme-forest .swatch-dot{background:linear-gradient(135deg,#8fd67a,#2f9e6f)}
.convo-theme-swatch.theme-lavender .swatch-dot{background:linear-gradient(135deg,#c9a7ff,#8b6ff0)}
.convo-theme-swatch.theme-charcoal .swatch-dot{background:linear-gradient(135deg,#6b7280,#2b3138)}
.convo-theme-swatch.theme-bubblegum .swatch-dot{background:linear-gradient(135deg,#ffb3d1,#ff6fae)}
/* Fonds + bulles par theme (mode prive uniquement) */
#messages.mode-private[data-convo-theme="sunset"] .chat-body{background:linear-gradient(180deg,#fff4ec,#ffe9ea)}
#messages.mode-private[data-convo-theme="sunset"] .bubble.mine{background:linear-gradient(135deg,#ff8f5a,#ff5f7e);color:#fff}
#messages.mode-private[data-convo-theme="ocean"] .chat-body{background:linear-gradient(180deg,#eef6ff,#e3f0ff)}
#messages.mode-private[data-convo-theme="ocean"] .bubble.mine{background:linear-gradient(135deg,#4aa8ff,#2f74e0);color:#fff}
#messages.mode-private[data-convo-theme="forest"] .chat-body{background:linear-gradient(180deg,#eef8ee,#e2f3e8)}
#messages.mode-private[data-convo-theme="forest"] .bubble.mine{background:linear-gradient(135deg,#6cc061,#2f9e6f);color:#fff}
#messages.mode-private[data-convo-theme="lavender"] .chat-body{background:linear-gradient(180deg,#f6f0ff,#efe9ff)}
#messages.mode-private[data-convo-theme="lavender"] .bubble.mine{background:linear-gradient(135deg,#b98cff,#8b6ff0);color:#fff}
#messages.mode-private[data-convo-theme="charcoal"] .chat-body{background:linear-gradient(180deg,#f2f3f5,#e6e8eb)}
#messages.mode-private[data-convo-theme="charcoal"] .bubble.mine{background:linear-gradient(135deg,#5b626b,#2b3138);color:#fff}
#messages.mode-private[data-convo-theme="bubblegum"] .chat-body{background:linear-gradient(180deg,#fff0f6,#ffe4f0)}
#messages.mode-private[data-convo-theme="bubblegum"] .bubble.mine{background:linear-gradient(135deg,#ff9ac4,#ff6fae);color:#fff}

/* Lot 2 — banque de couvertures generees : selecteur cherchable par mot-cle */
.cover-picker{margin:0 0 14px}
.cover-picker>label{display:block}
.cover-picker input[type=search]{width:100%;margin-top:6px}
.cover-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-top:10px}
.cover-option{border:2px solid transparent;background:none;border-radius:12px;padding:0;cursor:pointer;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;text-align:center}
.cover-option img{width:100%;aspect-ratio:400/260;object-fit:cover;border-radius:10px;display:block}
.cover-option span{font-size:.72rem;color:var(--muted);padding:4px 2px 2px;line-height:1.15}
.cover-option.selected{border-color:var(--coral)}
.cover-option.selected span{color:var(--coral-dark);font-weight:700}
.cover-option.cover-clear{grid-column:1/-1;border:1px dashed var(--line);border-radius:12px;padding:8px;color:var(--muted);font-size:.82rem;justify-content:center}
.cover-empty{grid-column:1/-1;color:var(--muted);font-size:.85rem;margin:4px 0}

/* Dons / soutien — bandeau discret + page de dons */
.support-banner{display:flex;align-items:center;gap:8px;justify-content:center;background:rgba(233,109,58,.08);border:1px solid rgba(233,109,58,.2);border-radius:14px;padding:7px 12px;margin:0 0 12px;font-size:.88rem}
.support-banner[hidden]{display:none}
.support-banner-cta{background:none;border:none;color:var(--coral-dark);cursor:pointer;font-size:.88rem;display:inline-flex;align-items:center;gap:7px;font-weight:600}
.support-banner-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1.1rem;line-height:1;padding:0 4px;flex:0 0 auto}
.donate-nav span[aria-hidden]{margin-right:8px}
.donate-wrap{max-width:640px;margin:0 auto}
.donate-intro{color:var(--ink);line-height:1.5;margin:0 0 18px}
.donate-freq{display:inline-flex;background:#faf6ef;border:1px solid var(--line);border-radius:999px;padding:3px;margin:0 0 16px}
.donate-freq-option{border:none;background:none;border-radius:999px;padding:7px 18px;cursor:pointer;color:var(--muted);font-size:.9rem;font-weight:600}
.donate-freq-option.active{background:var(--coral);color:#fff}
.donate-tiers{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:0 0 14px}
.donate-tier{display:flex;flex-direction:column;align-items:center;gap:4px;border:2px solid var(--line);background:#fff;border-radius:16px;padding:16px 10px;cursor:pointer;transition:border-color .15s,transform .1s}
.donate-tier:hover{transform:translateY(-1px)}
.donate-tier-emoji{font-size:1.7rem;line-height:1}
.donate-tier-label{font-weight:600;color:var(--ink);font-size:.92rem}
.donate-tier-amount{color:var(--muted);font-size:.85rem}
.donate-tier.selected{border-color:var(--coral)}
.donate-tier.selected .donate-tier-amount{color:var(--coral-dark);font-weight:700}
.donate-custom{display:block;margin:0 0 14px}
.donate-custom input{width:100%}
.donate-limit{margin:0 0 14px}
.donate-limit label{font-weight:600;color:var(--ink)}
.donate-limit small{display:block;color:var(--muted);margin-top:4px}
.donate-cta{width:100%;margin:4px 0 10px;font-size:1.02rem;padding:14px}
.donate-reassure{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.85rem;margin:0 0 6px}
.donate-reassure svg{width:16px;height:16px}
.donate-feedback{color:var(--coral-dark);font-size:.9rem;min-height:1.2em;margin:0}
.donate-legal{color:var(--muted);font-size:.78rem;margin:10px 0 0;line-height:1.4}

/* ===== Lieu de rendez-vous — refonte « 2 zones » (25/07/2026) =====================================================
   Une seule saisie visible (l'adresse exacte) + un second champ facultatif pour le lieu de l'activité. Les anciens
   champs « repère public » et « ville » sont devenus des champs cachés alimentés automatiquement. */
.rdv-address-field .field-title,.activity-elsewhere .field-title{font-weight:800;font-size:13px}
.rdv-address-field .field-title em,.activity-elsewhere .field-title em{font-style:normal;font-weight:600;color:var(--muted);font-size:11px;background:#f4f3ef;border-radius:8px;padding:2px 7px;margin-left:6px}
.rdv-address-field>small,.activity-elsewhere>small{font-weight:500;color:var(--muted);line-height:1.45}
.address-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.address-search-row input{min-width:0;width:100%}
.address-search-button{min-height:46px;padding:0 16px;white-space:nowrap}
.address-results{display:grid;gap:6px;margin:8px 0 0}
.address-results:empty{margin:0}
.address-results button{display:grid;gap:2px;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font:inherit}
.address-results button:hover,.address-results button:focus-visible{border-color:var(--coral);background:#fff6f2}
.address-results button strong{font-size:12.5px;line-height:1.35}
.address-results button small{color:var(--muted);font-size:11px}
.address-results p{margin:6px 0 0;font-size:11.5px;color:var(--muted)}
.address-results .place-confirmed{color:#2f7e5f;font-weight:700}
.map-picker-hint{margin:10px 2px 0;font-size:11px;line-height:1.5;color:var(--muted)}
.map-picker-hint strong{color:var(--ink)}
/* 2e lieu : la carte Explorer le dessine en vert pour le distinguer du rendez-vous (orange). */
.lr-map-marker-shell.is-activity-place .lr-map-marker{background:#2f9e6f}
/* « Y aller en un clic » — réservé aux participants acceptés. */
.detail-go{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.detail-go .go-there{text-decoration:none}
.exact-address{font-weight:700}
@media(max-width:720px){
  .address-search-row{grid-template-columns:1fr}
  .address-search-button{width:100%}
  .detail-go>*{flex:1 1 100%}
}

/* ===== Image de couverture — un seul bloc, suggestions en avant (25/07/2026) ======================================
   Auparavant deux sections portaient le même titre : l'upload (injecté par le plugin) puis les suggestions. L'upload
   vit désormais À L'INTÉRIEUR de la section de suggestions, en second. */
.cover-picker{margin-top:30px}
.cover-picker>.form-section-head p{margin:4px 0 0}
.cover-chips{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 4px}
.cover-chip{border:1px solid var(--line);background:#fff;border-radius:20px;padding:7px 13px;font:700 11.5px 'DM Sans';color:var(--muted);cursor:pointer;text-transform:capitalize}
.cover-chip:hover{border-color:var(--coral);color:var(--coral-dark)}
.cover-chip.active{background:#fff0eb;border-color:var(--coral);color:var(--coral-dark)}
.cover-search-field{margin:12px 0 0!important}
.cover-search-field .field-title{font-weight:800;font-size:12px}
.cover-picker .cover-grid{max-height:330px;overflow:auto;padding:2px;margin-top:12px;border:1px solid var(--line);border-radius:16px;background:#fdfcfa}
.cover-picker .cover-grid:not(:has(.cover-option)){border-style:dashed}
.cover-empty{grid-column:1/-1;margin:0;padding:22px 14px;text-align:center;color:var(--muted);font-size:12px}
.cover-option:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.activity-cover-picker{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line)}
.cover-upload-head{display:grid;gap:2px}
.cover-upload-head strong{font:800 13px 'DM Sans'}
.cover-upload-head small{color:var(--muted);font-size:11px}

/* ===== « Mes activités » — cartes visuelles (25/07/2026) ==========================================================
   L'ancienne liste (une ligne de texte par sortie) ne donnait aucune envie de revenir. Chaque activité est désormais
   une carte : couverture, pastille de date, compte à rebours, jauge de participants, actions au même endroit. */
.my-activities-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:stretch;margin:6px 0 20px}
.my-next{display:flex;gap:14px;align-items:center;text-align:left;padding:14px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(120deg,#fff,#fdf6f1);cursor:pointer;font:inherit;color:inherit;box-shadow:0 8px 26px rgba(23,57,45,.06)}
.my-next.is-empty{cursor:default;background:#fbfaf7}
.my-next img{width:96px;height:72px;border-radius:14px;object-fit:cover;flex:none}
.my-next span{display:grid;gap:3px;min-width:0}
.my-next em{font-style:normal;font:800 10px 'Baloo 2';letter-spacing:1.4px;text-transform:uppercase;color:var(--coral)}
.my-next strong{font:800 17px/1.2 'Baloo 2';overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.my-next small{color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.my-activities-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.my-stat{display:grid;gap:2px;place-items:center;padding:12px 6px;border:1px solid var(--line);border-radius:16px;background:#fff;cursor:pointer;font:inherit;color:inherit}
.my-stat b{font:800 20px 'Baloo 2';color:var(--ink);line-height:1}
.my-stat span{font-size:10px;font-weight:700;color:var(--muted);text-align:center}
.my-stat:hover{border-color:var(--coral)}
.my-stat.active{background:#fff0eb;border-color:var(--coral)}
.my-stat.active b,.my-stat.active span{color:var(--coral-dark)}
.my-activities-cta{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}
.my-activities-tabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.my-activities-tabs button{white-space:nowrap;flex:0 0 auto}
.my-activities-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.my-activity-card{display:grid!important;grid-template-rows:auto 1fr auto;align-items:stretch!important;gap:0!important;padding:0!important;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}
.my-activity-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(23,57,45,.1)}
.my-activity-card.state-cancelled{opacity:.72}
.my-activity-media{position:relative;height:118px;background:#eef2f0}
.my-activity-media img{width:100%;height:100%;object-fit:cover;display:block}
.my-activity-date{position:absolute;left:12px;top:12px;display:grid;place-items:center;width:48px;padding:6px 0;border-radius:14px;background:rgba(255,255,255,.95);box-shadow:0 6px 16px rgba(23,57,45,.16)}
.my-activity-date b{font:800 18px/1 'Baloo 2';color:var(--ink)}
.my-activity-date i{font-style:normal;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}
.my-activity-countdown{position:absolute;right:12px;top:12px;background:var(--coral);color:#fff;border-radius:20px;padding:5px 11px;font:800 10.5px 'DM Sans';box-shadow:0 6px 16px rgba(233,109,58,.3)}
.my-activity-body{display:grid!important;gap:7px;padding:14px 16px 6px;min-width:0!important}
.my-activity-badges{display:flex;gap:6px;flex-wrap:wrap}
.my-activity-card h3{font:800 16px/1.25 'Baloo 2';margin:0}
.my-activity-meta{display:flex;gap:12px;flex-wrap:wrap;margin:0;color:var(--muted);font-size:11.5px}
.my-activity-meta span{display:inline-flex;gap:5px;align-items:center;min-width:0}
.my-activity-people{margin:0;font-size:11.5px;font-weight:700;color:#2f7e5f}
.my-activity-reminder{margin-top:4px}
.my-activity-reminder .switch-row{font-size:11px!important;margin:0!important}
.my-activity-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 16px 14px;border-top:1px solid #f3efe8;margin-top:8px}
.my-activity-actions .primary,.my-activity-actions .secondary{padding:10px 14px;font-size:12px;border-radius:12px;box-shadow:none}
.my-activity-actions .text-link{margin-left:auto;color:var(--muted);font-size:11.5px}
.role-badge.favorite{background:#fff8df;color:#8a6d1a}
.state-badge.state-private{background:#eef0f7;color:#4a5578}
@media(max-width:720px){
  .my-activities-hero{grid-template-columns:1fr}
  .my-activities-stats{grid-template-columns:repeat(4,1fr)}
  .my-activities-cta button{flex:1}
  .my-activities-list{grid-template-columns:1fr}
  .my-next img{width:74px;height:60px}
}

/* ===== Messagerie — refonte esthétique (25/07/2026) ===============================================================
   Objectif : donner l'impression d'une vraie messagerie. Séparateurs de jour collants, messages consécutifs groupés,
   bulles avec pointe, liste de conversations lisible (non-lus, aperçu, heure), bouton retour sur mobile.
   Les règles de LAYOUT/overflow héritées des audits précédents ne sont pas touchées : elles corrigent de vrais bugs
   de hauteur sur iOS. Ce bloc n'agit que sur l'apparence. */
.conversation-search{margin:-8px 0 16px}
.conversation-search input{width:100%;max-width:420px;height:44px;border-radius:14px;background:#f6f5f1;border-color:transparent}
.conversation-search input:focus{background:#fff;border-color:var(--coral)}
#messages:not(.mode-private) .conversation-search,#messages.thread-open .conversation-search{display:none}
#conversation-list .conversation{align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid #f4f1ea;transition:background .15s ease}
#conversation-list .conversation:hover{background:#fbfaf7}
#conversation-list .conversation.active{background:var(--mint-pale);box-shadow:inset 3px 0 0 var(--mint)}
#conversation-list .conversation img{width:46px;height:46px;border-radius:16px;flex:none}
#conversation-list .conversation>span:last-child{display:grid;gap:3px;min-width:0;flex:1}
.conversation-top{display:flex;align-items:baseline;gap:8px;min-width:0}
.conversation-top strong{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.conversation-top .conversation-meta{flex:none;font-size:10px;color:var(--muted)}
.conversation-bottom{display:flex;align-items:center;gap:8px;min-width:0}
.conversation-bottom .conversation-preview{flex:1;min-width:0;font-size:11.5px}
.conversation-unread{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--coral);color:#fff;font:800 10px/20px 'DM Sans';text-align:center}
#conversation-list .conversation.is-unread .conversation-top strong{font-weight:800}
#conversation-list .conversation.is-unread .conversation-preview{color:var(--ink);font-weight:700}
/* Fil : séparateur de jour collant + regroupement */
.thread-day{position:sticky;top:0;z-index:4;display:flex;justify-content:center;margin:16px 0 10px;pointer-events:none}
.thread-day span{background:rgba(23,57,45,.08);color:#48605a;border-radius:20px;padding:4px 12px;font:800 10px 'DM Sans';letter-spacing:.4px;text-transform:uppercase;backdrop-filter:blur(6px)}
.message-cluster.is-grouped{margin-top:2px}
.message-cluster .message-avatar.is-spacer{background:none;border:0;box-shadow:none;flex:none;width:32px;height:32px}
.message-cluster.is-grouped .bubble{border-top-left-radius:8px}
.message-cluster.is-grouped.mine .bubble{border-top-left-radius:16px;border-top-right-radius:8px}
.bubble{border-radius:16px;padding:10px 14px;box-shadow:0 2px 8px rgba(23,57,45,.05)}
.message-cluster.is-last .bubble{border-bottom-left-radius:5px}
.message-cluster.is-last.mine .bubble{border-bottom-left-radius:16px;border-bottom-right-radius:5px}
.bubble .message-text{line-height:1.55}
.bubble footer small{font-size:10px;opacity:.72}
.bubble .message-author{font:800 10.5px 'DM Sans';color:var(--coral-dark);background:none;border:0;padding:0 0 3px;cursor:pointer}
.bubble.mine .message-author{color:#ffd9c4}
.message-actions>summary{list-style:none;cursor:pointer;border-radius:8px;padding:1px 5px;opacity:.55}
.message-actions>summary::-webkit-details-marker{display:none}
.message-cluster:hover .message-actions>summary{opacity:1}
.message-actions[open]>summary{opacity:1;background:rgba(23,57,45,.08)}
.read-receipt{font-size:11px}
.read-receipt.read{color:#4aa8ff}
/* Bandeau de conversation : retour (mobile), identité, actions groupées à droite */
.chat-back{display:none;flex:none;width:38px;height:38px;border:0;border-radius:14px;background:#f3f2ef;color:var(--ink);font-size:24px;line-height:1;cursor:pointer}
.chat-head{gap:10px}
.chat-actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex:none}
.chat-profile-avatar{border:0;background:none;padding:0;cursor:pointer;border-radius:14px}
.chat-profile-avatar img{width:42px;height:42px;border-radius:14px;object-fit:cover;display:block}
/* Composeur : outils discrets, champ dominant */
.rich-message-compose{background:#fff;border-top:1px solid var(--line)}
.compose-tools button{border:1px solid var(--line);background:#fff;border-radius:12px;color:var(--muted);font:700 11px 'DM Sans'}
.compose-tools button:hover:not(:disabled){border-color:var(--coral);color:var(--coral-dark)}
.compose-tools button:disabled{opacity:.45}
.compose-row input[name="message"]{border-radius:14px;background:#f7f6f2;border-color:transparent}
.compose-row input[name="message"]:focus{background:#fff;border-color:var(--coral)}
.compose-feedback{margin:0;min-height:0;font-size:11px}
.compose-feedback:empty{display:none}
@media(max-width:720px){
  #messages.thread-open .chat-back{display:grid;place-items:center}
  #messages.thread-open .chat-head{position:sticky;top:0;z-index:6;background:#fff}
  .thread-day{top:-4px}
}

/* ===== Amis & invitations — restructuration (25/07/2026) ==========================================================
   Trois sections hiérarchisées (ce qui demande une décision d'abord) et, partout, une personne = un bouton qui ouvre
   son profil. */
#friends .workspace-content{display:grid;gap:26px}
.friend-section>header{display:grid;gap:3px;margin-bottom:12px}
.friend-section h2{font:800 20px 'Baloo 2';margin:0;display:flex;align-items:center;gap:9px}
.friend-section h2 b{background:var(--coral);color:#fff;border-radius:9px;padding:2px 8px;font-size:11px}
.friend-section header p{margin:0;color:var(--muted);font-size:12px}
.friend-section.needs-action h2 b{animation:lr-pulse 2.4s ease-in-out infinite}
@keyframes lr-pulse{0%,100%{box-shadow:0 0 0 0 rgba(233,109,58,.4)}50%{box-shadow:0 0 0 7px rgba(233,109,58,0)}}
.friend-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.friend-card{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:18px;background:#fff}
.friend-identity{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:center;width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer;font:inherit;color:inherit;border-radius:14px}
.friend-identity:hover strong{color:var(--coral-dark)}
.friend-identity:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.friend-identity img{width:52px;height:52px;border-radius:18px;object-fit:cover}
.friend-identity span{display:grid;gap:2px;min-width:0}
.friend-identity strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.friend-identity small{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.friend-actions{display:flex;gap:8px;flex-wrap:wrap}
.friend-actions button{flex:1;min-width:110px;padding:10px 12px;font-size:12px;border-radius:12px;box-shadow:none}
.friend-pending{justify-self:start;background:#fff8df;color:#8a6d1a;border-radius:9px;padding:3px 9px;font:800 10px 'DM Sans'}
.friend-empty{display:grid;justify-items:start;gap:10px;margin:0;padding:18px;border:1px dashed var(--line);border-radius:16px;color:var(--muted);font-size:12.5px;background:#fbfaf7}
.member-search{display:grid;gap:10px;margin:18px 0 26px;padding:16px;border:1px solid var(--line);border-radius:18px;background:#fbfaf7}
.member-search label{display:grid;gap:6px;font-weight:800;font-size:12px}
.member-search>button{justify-self:start;min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font:700 12px 'DM Sans'}
.member-results{display:grid;gap:8px}
.member-results article{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fff}
.member-identity{display:flex;align-items:center;gap:11px;flex:1;min-width:0;border:0;background:none;padding:0;cursor:pointer;text-align:left;font:inherit;color:inherit}
.member-identity img{width:42px;height:42px;border-radius:14px;object-fit:cover}
.member-identity span{display:grid;min-width:0}
.member-identity small{color:var(--muted);font-size:11px}
.member-actions{display:flex;gap:7px;flex-wrap:wrap}
.member-actions button,.member-actions .relation-badge{min-height:38px;border-radius:11px;padding:0 12px;display:inline-flex;align-items:center;font:700 11.5px 'DM Sans'}
.member-actions button{border:1px solid var(--line);background:#fff;cursor:pointer}
.member-actions .relation-badge{background:var(--mint-pale);color:#287d69}
@media(max-width:720px){.friend-grid{grid-template-columns:1fr}}

/* ===== Confidentialité par champ de profil (25/07/2026) ===========================================================
   Un petit sélecteur posé en haut à droite du champ. Volontairement discret : gris, petit, sans bordure au repos —
   il ne doit pas concurrencer le champ lui-même. */
.privacy-hint{margin:0 0 4px;color:var(--muted);font-size:11.5px}
.profile-field.has-visibility,.profile-interests.has-visibility,.profile-passions.has-visibility,.profile-prompts.has-visibility{position:relative}
.profile-field.has-visibility{padding-top:24px;margin:16px 0}
.profile-field.has-visibility>label{margin:0}
.profile-passions.has-visibility{padding-top:24px}
.field-visibility{position:absolute;top:0;right:0;z-index:1;line-height:1}
.profile-interests.has-visibility>.field-visibility,.profile-prompts.has-visibility>.field-visibility{top:2px;right:2px}
.field-visibility select{appearance:none;-webkit-appearance:none;border:1px solid transparent;background:#f4f3ef;color:var(--muted);border-radius:9px;padding:4px 8px;font:700 10.5px 'DM Sans';cursor:pointer;max-width:150px}
.field-visibility select:hover{border-color:var(--line);color:var(--ink)}
.field-visibility select:focus-visible{outline:3px solid var(--coral);outline-offset:2px}
.person-hidden-note{margin:6px 0 0;color:var(--muted);font-size:11.5px;font-style:italic}
@media(max-width:720px){
  .field-visibility select{max-width:118px;font-size:10px;padding:4px 6px}
  .profile-field.has-visibility{padding-top:26px}
}

/* ===== Suivi de groupe (§5 du cahier des charges « carte interactive ») ==========================================
   Aucun nouveau langage visuel : corail pour l'état vivant, gris pour le hors ligne, mêmes rayons et mêmes ombres que
   le reste de l'application. Le bandeau permanent reprend le placement de .verify-banner, seul motif déjà éprouvé pour
   un élément fixe qui doit rester au-dessus de la barre de navigation mobile. */
.lr-track-block{margin:28px 0;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:20px}
.lr-track-block>h2{margin:0 0 12px}
.lr-track-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.lr-track-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:20px;background:#fdece7;color:var(--coral-dark);font-size:11.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}
.lr-track-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--coral);animation:lr-track-pulse 1.8s ease-in-out infinite}
.lr-track-badge.is-closed{background:var(--mint-pale);color:#2f7e5f}
.lr-track-badge.is-closed::before{background:var(--mint);animation:none}
@keyframes lr-track-pulse{0%,100%{opacity:1}50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.lr-track-badge::before,.lr-track-dot{animation:none}}
.lr-track-status small{color:var(--muted);font-size:12.5px}
.lr-track-map{height:280px;border-radius:16px;overflow:hidden;background:var(--mint-pale);margin-bottom:12px}
.lr-track-people{display:grid;gap:8px;margin-bottom:14px}
.lr-track-person{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:11px;padding:9px 12px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.lr-track-person.is-offline{background:#faf9f7;border-color:#e6e1d8}
.lr-track-person img,.lr-track-avatar-fallback{width:34px;height:34px;border-radius:50%;object-fit:cover;background:var(--mint-pale)}
.lr-track-person.is-offline img{filter:grayscale(1);opacity:.65}
.lr-track-person strong{display:block;font-size:14px}
.lr-track-person small{color:var(--muted);font-size:12px}
.lr-track-person.is-offline small{color:var(--coral-dark)}
.lr-track-person>span{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.lr-track-open{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:10px}
.lr-track-open label{display:grid;gap:5px;font-size:12.5px;color:var(--muted)}
.lr-track-open select{padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font:inherit;font-size:13.5px}
.lr-track-open select:focus-visible{outline:3px solid var(--coral);outline-offset:2px}
.lr-track-actions{display:flex;flex-wrap:wrap;gap:9px}
.lr-track-danger{border:1px solid #e2b6ab;background:var(--paper);color:#a8452c;padding:9px 15px;border-radius:12px;font:inherit;font-size:13.5px;cursor:pointer}
.lr-track-danger:hover{background:#fdf0ed}
.lr-track-danger:focus-visible{outline:3px solid var(--coral);outline-offset:2px}
.lr-track-note{margin:11px 0 0;color:var(--muted);font-size:12px}
.lr-track-empty{margin:0;color:var(--muted);font-size:13.5px}
/* L'avertissement du §2 : le web ne sait pas enregistrer écran éteint. Visible sans être alarmant. */
.lr-track-warning{margin:0 0 14px;padding:12px 14px;background:#fff8e6;border:1px solid #e6c34a;border-radius:14px;font-size:12.5px;line-height:1.55}
.lr-track-warning strong{display:block;margin-bottom:3px}

/* Repères de la carte du direct. Le cercle de précision est dessiné par Leaflet, pas ici : un point net sur une position
   à 80 m près serait un mensonge visuel. */
.lr-track-pin{background:none;border:0}
.lr-track-pin-body{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--paper);border:3px solid var(--coral);box-shadow:0 4px 12px rgba(23,57,45,.24);overflow:hidden}
.lr-track-pin-body img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.lr-track-pin-body b{font-size:12px;color:var(--coral-dark)}
.lr-track-pin.is-offline .lr-track-pin-body{border-color:#a9b2ad;filter:grayscale(1)}
.lr-track-popup{display:grid;gap:2px;padding:12px 14px}
.lr-track-popup strong{font-size:14px}
.lr-track-popup small{color:var(--muted);font-size:12px}

/* Bandeau permanent — la porte de sortie du §5.1, accessible en deux gestes depuis n'importe quel écran (CA-08). */
.lr-track-bar{display:none;position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:60;
  align-items:center;gap:12px;max-width:680px;margin:0 auto;padding:12px 15px;
  background:var(--paper);border:1px solid #e2b6ab;border-radius:16px;box-shadow:0 14px 40px rgba(23,57,45,.2)}
.lr-track-bar.is-visible{display:flex}
/* Le filet du piège connu : une règle auteur qui fixe `display` gagne sur l'attribut `hidden`. Cette règle vient en
   dernier et à spécificité égale, donc elle l'emporte — masquer le bandeau par `hidden` fonctionne réellement. */
.lr-track-bar[hidden]{display:none}
.lr-track-dot{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--coral);animation:lr-track-pulse 1.8s ease-in-out infinite}
.lr-track-bar-copy{flex:1 1 auto;min-width:0;display:grid;gap:1px}
.lr-track-bar-copy strong{font-size:13.5px}
.lr-track-bar-copy small{color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lr-track-stop{flex:0 0 auto;border:0;background:var(--coral);color:#fff;padding:9px 16px;border-radius:12px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.lr-track-stop:hover{background:var(--coral-dark)}
.lr-track-stop:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
@media(min-width:901px){.lr-track-bar{bottom:20px;left:auto;right:24px;max-width:400px}}
@media(max-width:720px){
  .lr-track-map{height:230px}
  .lr-track-open{flex-direction:column;align-items:stretch}
  .lr-track-open select{width:100%}
  .lr-track-actions button,.lr-track-danger{flex:1 1 auto}
}

/* ===== Lieux enregistrés (§6 du cahier des charges « carte interactive ») ========================================
   Même palette et mêmes rayons que le reste. Les repères de lieux sont volontairement plus discrets que ceux des
   activités : sur la carte Explorer, ce sont les sorties qui doivent rester le sujet principal. */
.lr-places-chip{display:inline-flex;align-items:center;gap:6px;margin:0 0 10px;padding:7px 14px;border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--muted);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.lr-places-chip:hover{border-color:var(--mint);color:var(--ink)}
.lr-places-chip.is-on{background:var(--mint-pale);border-color:var(--mint);color:#2f7e5f}
.lr-places-chip.is-on[data-count]::after{content:"("attr(data-count)")";font-weight:400;opacity:.8}
.lr-places-chip:focus-visible{outline:3px solid var(--coral);outline-offset:2px}
.lr-place-pin{background:none;border:0}
.lr-place-pin span{display:grid;place-items:center;width:30px;height:30px;border-radius:50% 50% 50% 6px;transform:rotate(-45deg);background:var(--paper);border:2px solid var(--mint);box-shadow:0 3px 9px rgba(23,57,45,.2);font-size:14px}
.lr-place-pin span::first-line{line-height:1}
.lr-place-pin.is-mine span{border-color:var(--coral)}
.lr-place-popup{display:grid;gap:3px;padding:13px 15px}
.lr-place-popup>span{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.lr-place-popup strong{font-size:15px}
.lr-place-popup p{margin:2px 0;font-size:12.5px;color:var(--ink)}
.lr-place-popup small{color:var(--muted);font-size:11.5px}
.lr-place-popup-actions{display:flex;gap:7px;margin-top:8px}
.lr-place-popup-actions button{flex:1 1 auto;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:7px 10px;border-radius:10px;font:inherit;font-size:12px;cursor:pointer}
.lr-place-popup-actions button:hover{border-color:var(--coral);color:var(--coral-dark)}

/* Lieux autour d'un rendez-vous, dans la fiche d'activité. */
.lr-place-nearby{margin:28px 0;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:20px}
.lr-place-nearby>h2{margin:0 0 12px}
.lr-place-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--line)}
.lr-place-row:last-child{border-bottom:0}
.lr-place-row-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--mint-pale);font-size:16px}
.lr-place-row strong{display:block;font-size:14px}
.lr-place-row small{display:block;color:var(--muted);font-size:11.5px}
.lr-place-row-note{margin-top:2px;font-style:italic}
.lr-place-row button{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:7px 12px;border-radius:11px;font:inherit;font-size:12px;cursor:pointer}
.lr-place-row button:hover{border-color:var(--mint);color:#2f7e5f}
.lr-place-empty{margin:0;color:var(--muted);font-size:13px}

/* Fenêtre d'enregistrement : trois champs visibles, le reste replié (§6.1). */
.lr-place-modal{display:none;position:fixed;inset:0;z-index:10030;background:rgba(23,57,45,.6);place-items:center;padding:18px}
.lr-place-modal.is-open{display:grid}
/* Piège connu : une règle auteur qui fixe `display` gagne sur l'attribut `hidden`. Cette règle vient en dernier. */
.lr-place-modal[hidden]{display:none}
.lr-place-sheet{width:100%;max-width:440px;max-height:90dvh;overflow-y:auto;background:var(--paper);border-radius:22px;box-shadow:var(--shadow)}
.lr-place-sheet header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 0}
.lr-place-sheet h2{margin:0;font-size:19px}
.lr-place-close{border:0;background:none;color:var(--muted);font-size:26px;line-height:1;cursor:pointer;padding:0 4px}
.lr-place-close:hover{color:var(--ink)}
.lr-place-sheet form{display:grid;gap:12px;padding:14px 20px 20px}
.lr-place-address{margin:0;padding:9px 12px;background:var(--mint-pale);border-radius:11px;color:var(--muted);font-size:12px}
.lr-place-sheet label{display:grid;gap:5px;font-size:12.5px;font-weight:600;color:var(--muted)}
.lr-place-sheet input[type=text],.lr-place-sheet select,.lr-place-sheet textarea{padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font:inherit;font-size:14px;font-weight:400}
.lr-place-sheet input:focus-visible,.lr-place-sheet select:focus-visible,.lr-place-sheet textarea:focus-visible{outline:3px solid var(--coral);outline-offset:1px}
.lr-place-sheet details summary{cursor:pointer;color:var(--muted);font-size:12.5px;font-weight:600;padding:4px 0}
.lr-place-sheet details[open] summary{margin-bottom:8px}
.lr-place-sheet details{display:grid;gap:11px}
.lr-place-privacy{margin:0;padding:11px 13px;background:#fff8e6;border:1px solid #e6c34a;border-radius:12px;font-size:12px;line-height:1.55}
.lr-place-actions{display:flex;gap:9px;margin-top:2px}
.lr-place-actions button{flex:1 1 auto;padding:11px 14px;border-radius:12px;font:inherit;font-size:14px;cursor:pointer}
@media(max-width:720px){
  .lr-place-sheet{max-width:none;border-radius:20px 20px 0 0;align-self:end;max-height:92dvh}
  .lr-place-modal{padding:0;align-items:end}
}

/* Résultat d'une sortie suivie : les chiffres passent avant les boutons, c'est ce qu'on revient voir. */
.lr-track-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.lr-track-summary>div{background:#f6f5f1;border-radius:12px;padding:10px 8px;display:grid;gap:2px;text-align:center}
.lr-track-summary strong{font:800 17px 'Baloo 2';line-height:1.1}
.lr-track-summary small{color:var(--muted);font-size:10px}
@media(max-width:720px){.lr-track-summary{grid-template-columns:repeat(2,1fr)}}

/* ===== Cartes RÉELLES — l'habillage commun aux deux moments où l'on quitte le plateau de jeu ========================
 *
 * Trois cartes coexistent dans LIVEROK et elles ne disent pas la même chose :
 *   Explorer        — trouver une sortie près de chez soi          (plan sobre)
 *   Quêtes          — découvrir, explorer, lever le brouillard     (PLATEAU DE JEU, parchemin, jamais autre chose)
 *   Aperçu + Suivi  — préparer puis faire la sortie                (TERRAIN RÉEL : relief et sentiers, ou plan routier)
 *
 * `.lr-realmap` est posée par `LiverokAddRealTiles` (app.js) sur les deux cartes du troisième groupe. Elle leur donne
 * un cadre et une teinte communs : assez de LIVEROK pour qu'on reconnaisse l'application, assez peu pour que les
 * courbes de niveau et les sentiers restent lisibles — c'est-à-dire tout ce pour quoi on affiche ce fond.
 * Ne jamais monter cette teinte : au-delà, on efface l'information qu'on est venu chercher. */
.lr-realmap .leaflet-tile-pane{filter:sepia(.16) saturate(.94) contrast(1.03)}
.lr-realmap{background:#efe9dd}
.lr-realmap .leaflet-control-attribution{font-size:9px;background:rgba(255,255,255,.82)}

/* ===== Explorer sur téléphone — audit de parcours du 01/08/2026 =====================================================
 * Mesuré sur un 390x844 réel : après avoir donné sa ville, le visiteur avait 811 px de commandes avant la moindre
 * ligne de contenu. Titre, surtitre, barre de ville dépliée, champ de recherche, second champ de lieu, rayon, résumé
 * de zone, lien « revenir à ma zone habituelle » (proposé à des gens qui n'ont pas de compte, donc pas de zone
 * habituelle), puis dix filtres empilés sur quatre lignes. La liste commence désormais à 499 px : elle entre dans le
 * premier écran. Rien n'a été retiré à qui en a besoin — seulement compacté, et masqué à qui n'en a pas l'usage.
 * ================================================================================================================= */
@media(max-width:640px){
  #explore .page-head{margin:0 0 10px}
  #explore .page-head h1{font-size:22px;line-height:1.15;margin:2px 0 0}
  #explore .page-head .eyebrow{display:none}
  #explore .search-box{margin:0 0 10px}
  /* Les filtres deviennent un ruban qui défile, comme les onglets ailleurs dans l'application : dix pastilles
     empilées coûtaient 203 px pour une information qu'un geste horizontal donne aussi bien. */
  #explore .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 0 12px;padding-bottom:2px}
  #explore .chips::-webkit-scrollbar{display:none}
  #explore .chips>*{flex:0 0 auto;min-height:44px}
  #explore .location-override{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin:0 0 10px}
  #explore .explore-zone-summary{grid-column:1;margin:0;font-size:.82rem}
  #explore .explore-radius-control{grid-column:2;margin:0}
}
/* Sans compte : le second champ de lieu fait doublon avec la barre « Vous êtes où ? », et « revenir à ma zone
   habituelle » renvoie à une zone qui n'existe pas. Les deux disparaissent — pour les visiteurs seulement. */
.lr-visitor #explore .location-override .place-search,
.lr-visitor #explore #explore-place-reset{display:none}
/* Preuve sociale sur la carte d'une sortie — audit du 01/08/2026. La carte ne portait aucun humain. */
.row-social{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:.82rem;line-height:1.35}
.row-going{font-weight:700}
.row-going.is-first{font-weight:600;opacity:.8}
.row-host{opacity:.85}
.row-seats{opacity:.75}
.row-seats.is-full{color:#b91c1c;font-weight:600;opacity:1}
.activity-row-footer{display:flex;align-items:center;gap:10px;justify-content:space-between}