:root{
  --bg:#f3f6f5; --card:#fff; --ink:#12302f; --muted:#5f7776; --line:#dbe5e3;
  --brand:#0f3d3e; --accent:#e07a1f; --ok:#1f9d63; --warn:#c0392b; --gold:#d4a017;
  --radius:14px;
  --safe-b:env(safe-area-inset-bottom,0px); --safe-t:env(safe-area-inset-top,0px);
}
@media (prefers-color-scheme:dark){
  :root{--bg:#0c1818; --card:#142626; --ink:#e6f1ef; --muted:#8fa9a6; --line:#223a39; --brand:#0a2a2b;}
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
html,body{margin:0}
body{font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);
  padding-bottom:calc(76px + var(--safe-b))}
.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;
  padding:calc(10px + var(--safe-t)) 12px 10px;background:var(--brand);color:#fff}
.topbar h1{flex:1;margin:0;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.icon-btn{background:none;border:0;color:#fff;font-size:30px;line-height:1;padding:0 8px;cursor:pointer}
.chip{background:var(--accent);color:#fff;border:0;border-radius:99px;padding:6px 12px;font-weight:600;cursor:pointer}
main{max-width:720px;margin:0 auto;padding:14px}
h2{font-size:17px;margin:18px 0 8px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:10px}
.row{display:flex;align-items:center;gap:10px}
.grow{flex:1;min-width:0}
.muted{color:var(--muted);font-size:14px}
.small{font-size:13px}
.btn{display:inline-block;border:0;border-radius:12px;padding:12px 16px;font-size:16px;font-weight:600;
  background:var(--accent);color:#fff;cursor:pointer}
.btn.block{display:block;width:100%;text-align:center}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.danger{background:var(--warn)}
.btn.sm{padding:7px 11px;font-size:14px;border-radius:10px}
.btn:disabled{opacity:.5}
.list-item{display:flex;align-items:center;gap:12px;cursor:pointer}
.list-item .arrow{color:var(--muted);font-size:22px}
.badge{display:inline-block;border-radius:99px;padding:2px 10px;font-size:12px;font-weight:700;color:#fff}
.badge.soon{background:#6c7a89}.badge.live{background:var(--ok)}.badge.done{background:var(--muted)}
.hero{background:var(--brand);color:#fff;border-radius:var(--radius);padding:16px;margin-bottom:12px;text-align:center}
.hero .count{font-size:34px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:1px;margin:4px 0}
.hero .muted{color:#b9d1ce}
.rank{display:flex;align-items:center;gap:12px}
.pos{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;
  background:var(--line);flex:none}
.pos.p1{background:var(--gold);color:#fff}.pos.p2{background:#9aa5b1;color:#fff}.pos.p3{background:#b8733a;color:#fff}
.score{text-align:right;font-weight:800;font-size:18px;font-variant-numeric:tabular-nums}
label{display:block;font-size:14px;font-weight:600;margin:12px 0 4px}
input,select,textarea{width:100%;padding:11px 12px;font-size:16px;border:1px solid var(--line);border-radius:10px;
  background:var(--card);color:var(--ink);font-family:inherit}
textarea{min-height:84px;resize:vertical}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.empty{text-align:center;color:var(--muted);padding:28px 10px}
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:5;display:flex;background:var(--card);
  border-top:1px solid var(--line);padding-bottom:var(--safe-b)}
.tabs button{flex:1;background:none;border:0;padding:8px 0 6px;color:var(--muted);font-size:20px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:1px}
.tabs button span{font-size:11px;font-weight:600}
.tabs button.on{color:var(--accent)}
dialog{border:0;border-radius:18px;padding:18px;width:min(92vw,460px);max-height:88vh;background:var(--card);color:var(--ink)}
dialog::backdrop{background:rgba(0,0,0,.5)}
dialog h3{margin:0 0 4px}
.toast{position:fixed;left:50%;bottom:calc(90px + var(--safe-b));transform:translate(-50%,20px);opacity:0;
  background:#111;color:#fff;padding:10px 16px;border-radius:99px;font-size:14px;pointer-events:none;
  transition:.25s;z-index:20;max-width:90vw}
.toast.show{opacity:1;transform:translate(-50%,0)}
.kv{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.kv:last-child{border:0}
.sharebox{word-break:break-all;background:var(--bg);border-radius:10px;padding:10px;font-size:13px;margin:6px 0}
.pill{display:inline-block;background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:2px 9px;
  font-size:12px;margin:2px 3px 0 0}

/* ───────── Mode solo ───────── */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 6px;text-align:center;min-width:0}
.stat b{display:block;font-size:17px;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}
.stat span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thumb{width:64px;height:64px;border-radius:10px;object-fit:cover;flex:none;background:var(--bg);cursor:pointer}
.thumb.ph{display:grid;place-items:center;font-size:26px;cursor:default}
.numbadge{background:var(--brand);color:#fff;border-radius:8px;padding:1px 8px;font-size:13px;font-weight:700}
.photo-prev{width:100%;max-height:220px;object-fit:cover;border-radius:10px;margin-bottom:8px}
input[type=checkbox]{width:auto}
label.inline{display:flex;align-items:center;gap:8px;font-weight:400;margin-top:8px}
input[type=file]{padding:9px}

.social-photo{display:block;width:100%;max-height:420px;object-fit:cover;border-radius:12px;margin:8px 0}

/* ───────── Prizeau modern home ───────── */
:root{
  --bg:#061b1a;--card:#0d2927;--ink:#f1f7f5;--muted:#9ab5b1;--line:#234542;
  --brand:#073432;--accent:#f07b12;--radius:20px;
}
body{background:radial-gradient(ellipse at 50% -12%,#16413d 0%,#071d1c 48%,#051514 100%);color:var(--ink)}
.topbar{background:rgba(4,35,33,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(129,190,179,.12);padding-left:18px;padding-right:18px;min-height:64px}
.topbar h1{font-size:21px;font-weight:800;letter-spacing:-.4px}
main{max-width:760px;padding:18px 16px 28px}
h2{font-size:21px;letter-spacing:-.45px;font-weight:800;margin:24px 0 12px}
.card{background:linear-gradient(145deg,rgba(18,49,46,.98),rgba(10,34,32,.98));border-color:rgba(116,171,162,.2);border-radius:20px;box-shadow:0 10px 28px rgba(0,0,0,.10)}
.btn{border-radius:14px;padding:13px 17px;font-weight:750;box-shadow:0 5px 14px rgba(240,123,18,.12);transition:transform .16s ease,filter .16s ease}
.btn:active{transform:scale(.985);filter:brightness(.96)}
.btn.ghost{box-shadow:none;border-color:var(--line);color:var(--ink)}
input,select,textarea{background:#102d2a;border-color:#2a4a46;border-radius:13px;color:var(--ink)}
input::placeholder,textarea::placeholder{color:#7e9995}
.home-hero{position:relative;isolation:isolate;overflow:hidden;min-height:300px;margin:2px 0 28px;border:1px solid rgba(118,191,178,.32);border-radius:26px;background:#092522 url('https://images.unsplash.com/photo-1470770841072-f978cf4d019e?auto=format&fit=crop&w=1400&q=85') center 52%/cover no-repeat;box-shadow:0 18px 40px rgba(0,0,0,.22)}
.home-hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(2,23,22,.94) 0%,rgba(2,23,22,.78) 47%,rgba(2,23,22,.14) 100%),linear-gradient(0deg,rgba(2,23,22,.35),transparent 45%)}
.home-hero-content{padding:28px 23px 24px;max-width:510px}
.home-eyebrow{display:inline-flex;align-items:center;gap:7px;color:#a9d4ca;font-size:10px;font-weight:850;letter-spacing:1.7px;margin-bottom:12px}
.home-eyebrow:before{content:"";display:inline-block;width:20px;height:2px;background:var(--accent);border-radius:3px}
.home-hero h2{font-size:clamp(29px,7vw,39px);line-height:1.08;letter-spacing:-1.2px;margin:0 0 14px;max-width:390px;color:#fff}
.home-hero h2 span{color:#ff941f}
.home-hero p{max-width:330px;font-size:15px;line-height:1.55;color:#e0ece8;margin:0 0 22px}
.home-hero-cta{display:flex;align-items:center;gap:10px;width:100%;max-width:350px;text-align:left;padding:14px 16px;border-radius:14px;font-size:16px;background:linear-gradient(135deg,#ff8b17,#e66a08);color:#fff}
.home-cta-plus{font-size:25px;line-height:20px;font-weight:500}
.home-cta-arrow{margin-left:auto;font-size:25px;line-height:20px}
.home-section{margin:0 0 27px}
.home-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 2px 12px}
.home-section-heading h2{margin:0;font-size:21px}
.home-section-heading>span{font-size:12px;color:#8ebbb2;font-weight:650;text-align:right}
.home-explore-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.home-explore-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:155px;overflow:hidden;text-align:left;padding:16px 14px;border:1px solid rgba(123,180,169,.25);border-radius:19px;color:#fff;background:#0e302d;cursor:pointer;isolation:isolate}
.home-explore-card:before{content:"";position:absolute;inset:0;z-index:-2;background-position:center;background-size:cover;opacity:.55;transition:transform .25s ease}
.home-explore-card:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,rgba(4,28,26,.96),rgba(4,28,26,.6) 68%,rgba(4,28,26,.22))}
.home-explore-card:active:before{transform:scale(1.04)}
.home-explore-events:before{background-image:url('https://images.unsplash.com/photo-1500375592092-40eb2168fd21?auto=format&fit=crop&w=700&q=75')}
.home-explore-social:before{background-image:url('https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=700&q=75')}
.home-explore-solo{grid-column:1/-1;min-height:105px}
.home-explore-solo:before{background-image:url('https://images.unsplash.com/photo-1518837695005-2083093ee35b?auto=format&fit=crop&w=900&q=75')}
.home-explore-icon{font-size:23px;margin-bottom:8px}
.home-explore-title{font-size:16px;line-height:1.2;font-weight:800;margin-bottom:7px;max-width:100%}
.home-explore-desc{font-size:12px;line-height:1.45;color:#d1e1dd;max-width:220px;padding-right:8px}
.home-card-arrow{position:absolute;right:12px;bottom:10px;color:#ff9b35;font-size:22px;font-weight:700}
.home-my-events{display:grid;gap:9px}
.home-event-card{width:100%;display:flex;align-items:center;gap:12px;padding:12px;text-align:left;color:var(--ink);background:linear-gradient(140deg,#123a36,#0b2826);border:1px solid var(--line);border-radius:18px;cursor:pointer}
.home-event-thumb{width:62px;height:62px;flex:none;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#22564e,#102c29);font-size:27px;border:1px solid rgba(139,194,181,.15)}
.home-event-main{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.home-event-main b{font-size:16px;overflow-wrap:anywhere}
.home-event-main>span{font-size:12px;color:#a5c0bb}
.home-event-main small{font-size:11px;color:#f5a14d;font-weight:700}
.home-event-arrow{font-size:28px;color:#9ab8b1;padding:0 4px}
.home-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:22px 16px;border:1px dashed #31524d;border-radius:18px;background:rgba(13,41,39,.6)}
.home-empty-icon{font-size:30px}
.home-empty b{font-size:15px}
.home-empty>span:not(.home-empty-icon){font-size:13px;color:var(--muted);max-width:260px}
.home-empty .btn{margin-top:6px}
.home-join-section{margin:0 0 24px}
.home-join-form{display:flex;align-items:center;gap:8px;padding:6px;border:1px solid #2a4b46;border-radius:17px;background:rgba(13,41,39,.94);box-shadow:inset 0 1px rgba(255,255,255,.025)}
.home-join-icon{width:30px;flex:none;text-align:center;color:#91b9b0;font-size:28px;transform:rotate(-35deg)}
.home-join-form input{min-width:0;flex:1;border:0;outline:0;background:transparent;padding:11px 3px;font-size:14px;box-shadow:none}
.home-join-submit{width:48px;height:46px;flex:none;display:grid;place-items:center;padding:0;border-radius:13px;font-size:27px}
.home-footer{text-align:center;padding:8px 0 4px;color:#668b84;font-size:10px;font-weight:800;letter-spacing:2px}
.home-footer span{color:var(--accent);padding:0 4px}
@media(min-width:560px){.home-hero{min-height:330px}.home-hero-content{padding:35px 30px}.home-explore-card{min-height:170px;padding:18px}.home-explore-solo{grid-column:auto;min-height:170px}.home-explore-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:360px){main{padding:13px 12px}.home-hero-content{padding:22px 17px}.home-hero{min-height:280px}.home-explore-grid{gap:8px}.home-explore-card{padding:13px 11px;min-height:160px}.home-explore-title{font-size:14px}.home-explore-desc{font-size:11px}.home-section-heading h2{font-size:19px}}

/* ───────── Prizeau : finition premium sur toutes les rubriques ───────── */
:root{--bg:#061b19;--card:#0e2926;--ink:#edf6f3;--muted:#9ab5af;--line:#244540;--brand:#062b29;--accent:#f18416;--radius:18px;color-scheme:dark}
body{background:radial-gradient(ellipse at 50% -15%,rgba(27,91,79,.24),transparent 46%),var(--bg);letter-spacing:.005em}
.topbar{background:rgba(5,42,39,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(122,178,166,.12);padding-left:16px;padding-right:16px;min-height:62px}
.topbar h1{font-size:20px;font-weight:800;letter-spacing:-.45px}
main{max-width:760px;padding:18px 16px 28px}
h2{font-size:21px;line-height:1.2;letter-spacing:-.45px;margin:24px 2px 12px;font-weight:800}
h3{font-size:20px;letter-spacing:-.3px}
.card{background:linear-gradient(145deg,rgba(17,48,44,.98),rgba(10,35,33,.98));border:1px solid rgba(111,163,151,.2);border-radius:20px;padding:16px;margin-bottom:13px;box-shadow:0 8px 24px rgba(0,0,0,.10)}
.btn{border-radius:14px;padding:13px 16px;font-size:15px;font-weight:750;letter-spacing:.005em;background:linear-gradient(135deg,#ff921f,#e56d0a);box-shadow:0 5px 14px rgba(224,113,14,.12);transition:transform .15s ease,filter .15s ease}
.btn:active{transform:scale(.985);filter:brightness(.96)}
.btn.ghost{background:rgba(12,37,34,.6);border:1px solid #2a4b45;color:var(--ink);box-shadow:none}
.btn.danger{background:#a83d34}
input,select,textarea{border-radius:13px;background:#0b2421;border-color:#294943;color:var(--ink);padding:13px 14px;outline:none;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:#e88929;box-shadow:0 0 0 3px rgba(241,132,22,.12)}
label{font-size:13px;color:#b9d0ca;font-weight:750;margin:14px 0 6px}
.grid2{gap:12px}
.list-item{padding:17px;border-radius:18px;background:linear-gradient(145deg,#123833,#0c2926)}
.badge{padding:5px 11px;letter-spacing:.02em}
.badge.live{background:#19865c}.badge.soon{background:#456d87}
.hero{border:1px solid #28544c;border-radius:22px;padding:22px;background:linear-gradient(145deg,#123e37,#092824);box-shadow:0 10px 25px rgba(0,0,0,.15)}
.rank{padding:15px;border-radius:17px}.pos{width:40px;height:40px}
.tabs{background:rgba(5,34,32,.96);backdrop-filter:blur(16px);border-top:1px solid #21433e;box-shadow:0 -8px 28px rgba(0,0,0,.12)}
.tabs button{padding:10px 0 8px;gap:3px}.tabs button.on{color:#ff941f}.tabs button span{font-size:11px;letter-spacing:.01em}
dialog{border:1px solid #2a4d46;border-radius:22px;padding:21px;background:#0e2926;box-shadow:0 22px 80px rgba(0,0,0,.45)}
dialog::backdrop{background:rgba(0,12,11,.72);backdrop-filter:blur(3px)}
.toast{background:#f1f7f4;color:#102c28;box-shadow:0 8px 30px rgba(0,0,0,.3);font-weight:700}
.kv{padding:12px 0;border-color:#24443f}.kv span{color:var(--muted)}.kv b{text-align:right;max-width:65%;overflow-wrap:anywhere}
.pill{background:#153b35;border-color:#2a554c;color:#d9e9e4;padding:4px 10px}
.empty{padding:30px 16px;border:1px dashed #31554d;border-radius:18px;background:rgba(13,41,38,.45)}
.empty-icon{display:block;font-size:30px;margin-bottom:7px}
.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 2px 12px}
.section-title-row h2{margin:0}
.catches-add{margin-bottom:16px}
.catch-card{position:relative;overflow:hidden;padding:0;display:flex;flex-direction:column;gap:0}
.catch-photo-link{display:block;width:100%;background:#071c1a;max-height:340px;overflow:hidden}
.catch-photo{display:block;width:100%;max-height:340px;object-fit:cover;aspect-ratio:16/9;transition:transform .25s ease}
.catch-photo-link:active .catch-photo{transform:scale(1.02)}
.catch-card-content{padding:15px 16px 16px;min-width:0}
.catch-weight{font-size:23px;font-weight:900;letter-spacing:-.6px;color:#fff;font-variant-numeric:tabular-nums}
.catch-weight span{font-size:14px;font-weight:650;color:#a7c0b9;letter-spacing:0}
.catch-meta{margin-top:4px;font-size:14px;color:#d8e8e3;overflow-wrap:anywhere}
.catch-delete{position:absolute;top:10px;right:10px;background:rgba(4,24,22,.82)!important;backdrop-filter:blur(8px);border-color:rgba(255,255,255,.22)!important}
.social-photo{max-height:460px;border-radius:16px;margin:10px 0;object-fit:cover}
.social-post{padding:16px}
.social-header{background:linear-gradient(145deg,#123e37,#0b2926)}
@media(max-width:390px){main{padding:14px 12px 24px}.card{padding:14px;border-radius:17px}.catch-card{padding:0}.catch-card-content{padding:13px}.btn{padding:12px 13px}.home-hero{min-height:278px}.home-hero-content{padding:23px 17px}.home-explore-card{min-height:150px}}

/* Profil compact sur l'accueil */
.home-profile-mini{width:100%;display:flex;align-items:center;gap:11px;text-align:left;margin:0 0 14px;padding:10px 13px;border:1px solid #285047;border-radius:17px;background:linear-gradient(135deg,rgba(18,57,51,.96),rgba(10,39,36,.96));color:var(--ink);cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.08)}
.home-profile-avatar{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;object-fit:cover;border-radius:50%;background:linear-gradient(135deg,#ff9a2e,#dc6d0b);color:#fff;font-size:21px;font-weight:800;border:2px solid rgba(255,255,255,.16)}
.home-profile-text{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}.home-profile-text b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-profile-text small{font-size:12px;color:#a9c5bc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-profile-arrow{font-size:25px;color:#ff941f}
.social-author-avatar{width:42px;height:42px;flex:0 0 42px;border:0;padding:0;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:rgba(232,125,24,.2);font-size:21px;cursor:pointer}.social-author-avatar img{width:100%;height:100%;object-fit:cover}.social-author-name{flex:1;min-width:0;text-align:left;display:flex;flex-direction:column;gap:2px;background:transparent;color:var(--ink);border:0;padding:0;cursor:pointer}.social-author-name .muted{font-size:12px}.profile-edit-preview{display:block;width:84px;height:84px;object-fit:cover;border-radius:50%;margin:8px auto 14px;border:3px solid #e88929}.public-profile-dialog{padding:2px}.public-profile-top{text-align:center;padding:8px 0 14px}.public-profile-avatar{width:96px;height:96px;object-fit:cover;border-radius:50%;border:3px solid #e88929;display:block;margin:0 auto 12px}.public-profile-placeholder{display:grid;place-items:center;background:#16443a;font-size:38px}.public-profile-top h3{margin:0 0 5px}.public-profile-dialog h4{margin:8px 0 4px}.public-profile-dialog p{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);line-height:1.6}

/* Sélecteur de photo de profil avec aperçu */
.profile-photo-picker{text-align:center;padding:10px 12px 14px;margin:4px 0 16px;border:1px dashed rgba(232,137,41,.45);border-radius:16px;background:rgba(232,137,41,.05)}
.profile-photo-picker .profile-edit-preview{width:104px;height:104px;margin:0 auto 10px}
.profile-edit-placeholder{width:104px;height:104px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;background:rgba(232,125,24,.18);font-size:42px;border:3px solid #e88929}
.profile-photo-button{display:table;margin:0 auto 8px;cursor:pointer}
.profile-photo-picker small{display:block;line-height:1.4}
