@font-face{font-family:"Inter";font-weight:400;font-style:normal;font-display:swap;src:url("/assets/fonts/inter-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:500;font-style:normal;font-display:swap;src:url("/assets/fonts/inter-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:600;font-style:normal;font-display:swap;src:url("/assets/fonts/inter-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:700;font-style:normal;font-display:swap;src:url("/assets/fonts/inter-latin-700-normal.woff2") format("woff2")}

:root{--bg:#f3f4f6;--card:#fff;--text:#1c1c1e;--muted:#5f6368;--line:#e3e5e8;--field:#f8f9fa;--field-line:#c9cdd2;--accent:#F26B21;--accent-text:#b8470a;--ok:#1a7f37;--bad:#b3261e;--shadow:0 1px 3px rgba(0,0,0,.12);color-scheme:light}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--bg:#101114;--card:#1b1d22;--text:#f1f2f4;--muted:#a3a9b3;--line:#2a2d34;--field:#14161a;--field-line:#3a3e46;--accent-text:#ff9d62;--ok:#4ac26b;--bad:#ff8a80;--shadow:0 1px 3px rgba(0,0,0,.5);color-scheme:dark}
}
:root[data-theme="dark"]{--bg:#101114;--card:#1b1d22;--text:#f1f2f4;--muted:#a3a9b3;--line:#2a2d34;--field:#14161a;--field-line:#3a3e46;--accent-text:#ff9d62;--ok:#4ac26b;--bad:#ff8a80;--shadow:0 1px 3px rgba(0,0,0,.5);color-scheme:dark}
:root{--r-btn:12px;--r-btn-sm:10px}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 "Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none}
h1{font-size:26px;line-height:1.2;margin:0 0 20px}
.muted{color:var(--muted)}
.m0{margin:0}
.mt8{margin-top:8px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

.topbar{background:var(--card);border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;
  padding:12px max(24px,env(safe-area-inset-right)) 12px max(24px,env(safe-area-inset-left));padding-top:calc(12px + env(safe-area-inset-top,0px))}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:19px}
.brand-mark{width:12px;height:12px;border-radius:3px;background:var(--accent)}
.nav{display:flex;gap:18px}
.nav a{padding:12px 2px;font-weight:500;border-bottom:3px solid transparent}
.nav a[aria-current="page"]{font-weight:700;border-bottom-color:var(--accent)}
.search{margin-left:auto;flex:0 1 230px;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--field-line);background:var(--field);border-radius:var(--r-btn);color:var(--muted)}
.search:focus-within{border-color:var(--accent)}
.search input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font:inherit;outline:none;padding:10px 0}
.search svg{flex:none}
.actions{display:flex;gap:8px}
.actions form{margin:0}
.pill{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:1px solid var(--field-line);background:var(--card);color:var(--text);border-radius:var(--r-btn);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.pill:hover{border-color:var(--accent)}
.i{display:none;width:18px;height:18px}
html:not([data-theme-pref]) .i-auto,[data-theme-pref="auto"] .i-auto,[data-theme-pref="light"] .i-light,[data-theme-pref="dark"] .i-dark{display:block}

main{max-width:1200px;margin:0 auto;padding:28px max(24px,env(safe-area-inset-left)) calc(48px + env(safe-area-inset-bottom,0px))}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:18px 20px}
.stack{display:flex;flex-direction:column;gap:20px}
.strip{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 32px}
.strip-title{flex:1 0 100%;font-size:14px;font-weight:600;color:var(--muted)}
.stat{color:var(--muted);font-size:15px}
.stat b{color:var(--text);font-size:26px;font-weight:700;margin-right:4px}
.delta{flex:1 0 100%;font-size:14px;font-weight:600;color:var(--ok)}
.delta.neg{color:var(--muted)}

body.auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px}
.auth main{width:100%;max-width:400px;padding:0}
.login-brand{justify-content:center;margin-bottom:20px}
.login-card{padding:28px}
.login-card h1{font-size:22px;margin-bottom:18px}
.field{display:block;margin-bottom:16px;font-size:14px;font-weight:500}
.field input{display:block;width:100%;min-height:48px;margin-top:6px;padding:0 14px;border:1px solid var(--field-line);background:var(--field);color:var(--text);border-radius:12px;font:inherit;font-size:16px}
.field input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}
.btn{width:100%;min-height:48px;border:0;border-radius:12px;background:var(--accent);color:#1c1c1e;font:inherit;font-weight:700;cursor:pointer}
.btn:hover{filter:brightness(1.06)}
.alert{margin:0 0 16px;padding:12px 14px;border-radius:12px;border:1px solid var(--bad);color:var(--bad);font-size:14px;font-weight:500}

@media (max-width:760px){
  .topbar{gap:4px 12px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  .brand{order:1}.actions{order:2;margin-left:auto;gap:6px}
  .actions .pill{padding:0 9px;font-size:13px}
  .actions{gap:4px}
  .topbar .brand{font-size:17px}
  .actions .label{display:none}
  .nav{order:3;width:100%;overflow-x:auto;gap:14px;font-size:15px}
  .search{order:4;flex:1 1 100%;margin:4px 0 8px}
  main{padding:20px max(16px,env(safe-area-inset-left)) calc(40px + env(safe-area-inset-bottom,0px))}
  h1{font-size:23px}
}

/* ---------- Activités ---------- */
.f-velo{--fam:#F26B21}.f-rando{--fam:#5DAA3F}.f-ski{--fam:#3D8BFD}.f-eau{--fam:#12B5A6}.f-indoor{--fam:#E5484D}.f-raquette{--fam:#8E6CEF}.f-autres{--fam:#8A94A6}
.fi{width:20px;height:20px;flex:none;overflow:visible}
.check .fi{width:22px;height:22px;color:var(--muted)}
.link{color:var(--accent-text);font-weight:600;text-decoration:underline}
.strip-note{flex:1 0 100%;font-size:13px}
.totals{margin:8px 0 18px;color:var(--muted)}
.totals b{color:var(--text);font-weight:700}
.more-wrap{text-align:center;margin:28px 0 0}

.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border:1px solid var(--field-line);border-radius:var(--r-btn);background:var(--card);font-size:14px;font-weight:500}
.chip .fi{width:26px;height:26px;color:var(--fam)}
.chip input:checked + span{background:var(--fam);border-color:var(--fam);color:#fff;font-weight:600}
.chip input:checked + span .fi{color:inherit}
.chip input:focus-visible + span{outline:3px solid var(--accent);outline-offset:2px}

.more-filters{margin-bottom:12px}
.more-filters summary{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-weight:600;list-style:none}
.more-filters summary::-webkit-details-marker{display:none}
.more-filters summary::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.more-filters[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:8px 0 12px}
fieldset{margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
legend{padding:0 6px;font-size:14px;font-weight:600}
fieldset.types{display:flex;flex-wrap:wrap;align-content:flex-start;gap:2px 16px}
.check{display:flex;align-items:center;gap:8px;min-height:32px;font-size:14px}
.lbl{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;font-size:13px;font-weight:500}
.lbl.inline{flex-direction:row;align-items:center;gap:8px;margin:0}
select,input[type=date],input[type=number]{min-height:44px;padding:0 10px;border:1px solid var(--field-line);border-radius:10px;background:var(--field);color:var(--text);font:inherit;font-size:15px}
.range{display:grid;grid-template-columns:1fr 84px 84px;gap:8px;align-items:center;margin-bottom:8px;font-size:14px}
.range input{width:100%}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}
.act{display:flex;flex-direction:column;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
@media (prefers-reduced-motion:no-preference){.act{transition:transform .12s}.act:hover{transform:translateY(-2px)}}
.media{position:relative;isolation:isolate;display:grid;gap:3px;height:210px;overflow:hidden;background:var(--line)}
.media img{display:block;width:100%;height:100%;object-fit:cover}
.m1{grid-template-columns:1fr}
.m2{grid-template-columns:1fr 1fr}
.m3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}
.m3 > img:first-child{grid-row:span 2}
.tile{position:relative;display:block;overflow:hidden}
.tile .more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.45);color:#fff;font-size:22px;font-weight:700}
.tint{display:grid;place-items:center;background:color-mix(in srgb,var(--fam) 16%,var(--card));color:var(--fam)}
.trace{width:100%;height:100%;padding:14px}
.trace path{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.big-icon .fi{width:64px;height:64px}
.act-body{display:flex;flex-direction:column;gap:12px;padding:16px}
.act-head{display:flex;align-items:center;gap:10px}
.pastille{display:flex;flex:none;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--fam);color:#fff}
.pastille .fi{width:24px;height:24px}
.act-titles{min-width:0}
.act-title{font-size:17px;font-weight:700;line-height:1.25;overflow-wrap:anywhere}
.act-sub{font-size:13px}
.act-stats{display:flex;flex-wrap:wrap;gap:8px 20px}
.act-stats div{white-space:nowrap}
.act-stats span{display:block;font-size:12px}
.act-stats b{font-size:15px;font-weight:600}

/* ---------- Fiche d'une sortie ---------- */
.hidden{display:none !important}
.fiche{display:flex;flex-direction:column;gap:20px}
.fiche-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.link-back{font-weight:600;color:var(--accent-text);min-height:44px;display:inline-flex;align-items:center}
.fiche-pn{display:flex;gap:8px}
.fiche-head{display:flex;align-items:center;gap:14px}
.fiche-head h1{font-size:26px;overflow-wrap:anywhere}
.pastille.big{width:52px;height:52px}
.pastille.big .fi{width:36px;height:36px}
.h2{font-size:17px;margin:0 0 12px}

.gallery{display:grid;gap:4px;height:420px;border-radius:16px;overflow:hidden;background:var(--line)}
.gallery .ph{position:relative;display:block;padding:0;border:0;background:var(--line);cursor:zoom-in;overflow:hidden;min-width:0;min-height:0}
.gallery .ph img{display:block;width:100%;height:100%;object-fit:cover}
.gallery .more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.45);color:#fff;font-size:26px;font-weight:700}
.g1{grid-template-columns:1fr}
.g2{grid-template-columns:1fr 1fr}
.g3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}
.g3 .ph:first-child{grid-row:span 2}
.g4{grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr}
.g4 .ph:first-child{grid-row:span 2;grid-column:1}
.g4 .ph:nth-child(4){grid-column:2 / span 2}
.g5{grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr}
.g5 .ph:first-child{grid-row:span 2}

.lb{max-width:100vw;max-height:100vh;width:100vw;height:100vh;height:100dvh;margin:0;padding:0;border:0;background:rgba(0,0,0,.92);color:#fff}
.lb::backdrop{background:rgba(0,0,0,.92)}
.lb img{position:absolute;inset:56px 0 56px;margin:auto;max-width:100%;max-height:calc(100% - 112px);object-fit:contain}
.lb-btn{position:absolute;width:52px;height:52px;border:0;border-radius:14px;background:rgba(255,255,255,.16);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.lb-btn:hover{background:rgba(255,255,255,.3)}
.lb-close{top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));font-size:22px}
.lb-prev{left:max(8px,env(safe-area-inset-left));top:50%;transform:translateY(-50%)}
.lb-next{right:max(8px,env(safe-area-inset-right));top:50%;transform:translateY(-50%)}
.lb-bar{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:24px;padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px));font-size:15px}
.lb-bar a{text-decoration:underline}

.fstats{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:16px 20px}
.fstats span{display:block;font-size:13px}
.fstats b{display:block;font-size:22px;font-weight:700}
.tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:16px}
.tag{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid var(--field-line);border-radius:var(--r-btn-sm);font-size:14px}

.map-card{padding:0;overflow:hidden}
.map-card .strip-note{padding:0 20px 12px}
.map{height:460px;background:var(--line)}
.leaflet-container{font:inherit}
.pt{border-radius:50%;border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.5)}
.pt-start{background:#2e9e4f}
.pt-end{background:#1c1c1e}
.pt-hov{background:#F26B21;width:20px !important;height:20px !important;margin:-2px 0 0 -2px !important}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .tiles-inv{filter:invert(1) hue-rotate(180deg) brightness(.9) contrast(.88)}}
:root[data-theme="dark"] .tiles-inv{filter:invert(1) hue-rotate(180deg) brightness(.9) contrast(.88)}

.chart-block + .chart-block{margin-top:18px}
.chart-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;margin-bottom:6px;font-size:14px}
.chart-box{position:relative;height:150px}

.zbar{display:block;width:100%;height:22px;border-radius:11px;overflow:hidden}
.zlist{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:6px}
.zlist li{display:grid;grid-template-columns:14px 1fr auto 48px;align-items:center;gap:10px;font-size:14px}
.zlist .muted{text-align:right}
.zdot{display:block;width:12px;height:12px;border-radius:50%}
.z0{fill:#9aa3b2;background:#9aa3b2}.z1{fill:#4aa3f2;background:#4aa3f2}.z2{fill:#4ac26b;background:#4ac26b}
.z3{fill:#f2b705;background:#f2b705}.z4{fill:#f2842b;background:#f2842b}.z5{fill:#e5484d;background:#e5484d}

@media (max-width:760px){
  .gallery{height:300px}
  .map{height:360px}
  .fiche-head h1{font-size:22px}
  .pastille.big{width:44px;height:44px}
}

/* ---------- Accueil ---------- */
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.home{gap:28px}
.sec-head{margin:0 0 12px}
.h2l{margin:0;font-size:22px;line-height:1.25}
.badge{flex:none;align-self:flex-start;font-size:12px;font-weight:600;background:color-mix(in srgb,var(--accent) 16%,var(--card));color:var(--accent-text);border-radius:999px;padding:3px 10px;white-space:nowrap}
.more-wrap.left{text-align:left}
.foot-note{font-size:13px}

/* carrousel « il y a N ans » : une seule ligne par année, trois cartes visibles sur ordinateur */
.rail{position:relative}
.rail-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px}
.rail-track::-webkit-scrollbar{display:none}
.rail-track > .mem{position:relative;display:flex;flex:0 0 calc((100% - 40px) / 3);min-width:0;scroll-snap-align:start}
.mem > .act{flex:1;min-width:0}
.year-link{z-index:3;position:absolute;left:1px;right:1px;top:130px;height:80px;display:flex;align-items:flex-end;padding:0 16px 12px;border-radius:0;background:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,.62));color:#fff;font-size:21px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.year-link:hover{text-decoration:underline}
.rail-btn{position:absolute;top:105px;z-index:2;width:44px;height:44px;margin-top:-22px;border:1px solid var(--field-line);border-radius:var(--r-btn);background:var(--card);color:var(--text);font:inherit;font-size:26px;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.25);cursor:pointer}
.rail-btn:hover{border-color:var(--accent)}
.rail-btn[hidden]{display:none}
.rail-prev{left:-14px}
.rail-next{right:-14px}
@media (max-width:1000px){.rail-track > .mem{flex-basis:calc((100% - 20px) / 2)}}
@media (max-width:760px){.rail-track > .mem{flex-basis:86%}}
@media (hover:none){.rail-btn{display:none}}

/* ---------- Stats ---------- */
.tabs{display:flex;gap:6px;overflow-x:auto;margin:0 0 16px;padding:0 0 2px;border-bottom:1px solid var(--line)}
.tabs a{padding:12px 14px;font-weight:500;border-bottom:3px solid transparent;white-space:nowrap}
.tabs a[aria-current="page"]{font-weight:700;border-bottom-color:var(--accent)}
.tabs .tab-sep{flex:0 0 auto;align-self:center;width:1px;height:18px;margin:0 6px 3px;background:color-mix(in srgb,var(--muted) 45%,transparent);border-radius:1px}
.chip.metric span,.chips.metric .chip span{}
.chips.metric .chip{--fam:var(--accent)}
.chips.metric .chip input:checked + span{color:#1c1c1e}
.stats{gap:20px}
.chart-xl{position:relative;height:420px}
.chart-m{position:relative;height:300px;margin-bottom:16px}
.chart-m.tall{height:460px}
.chart-s{position:relative;height:240px}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:20px}
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:15px}
.tbl th,.tbl td{padding:9px 12px;text-align:right;border-top:1px solid var(--line);white-space:nowrap}
.tbl th:first-child,.tbl td:first-child{text-align:left}
.tbl thead th{border-top:0;font-size:13px;font-weight:600;color:var(--muted)}
.tbl tbody th{font-weight:600}
.pos{color:var(--ok);font-weight:600}
.mb12{margin-bottom:12px}
.tx{color:var(--text)}
.shares{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.shares li{display:grid;grid-template-columns:14px 1fr auto 48px;align-items:center;gap:10px;font-size:14px}
.shares .muted{text-align:right}
.zdot.sw{background:var(--fam)}

.cal-wrap{overflow-x:auto;padding-bottom:6px}
.cal{display:block;width:100%;min-width:760px;height:auto}
.cal-t{font-size:10px;fill:var(--muted);font-family:inherit}
.cal a{cursor:pointer}
.cal a:hover rect{stroke:var(--text);stroke-width:1.5}
.cl0{fill:var(--line)}
.cl1{fill:color-mix(in srgb,var(--accent) 30%,var(--card))}
.cl2{fill:color-mix(in srgb,var(--accent) 55%,var(--card))}
.cl3{fill:color-mix(in srgb,var(--accent) 80%,var(--card))}
.cl4{fill:color-mix(in srgb,var(--accent) 100%,#000 12%)}
.cal-legend{display:flex;align-items:center;gap:8px;justify-content:flex-end;font-size:13px;margin-top:6px}

.rec{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.rec li{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;min-height:52px;border-top:1px solid var(--line);padding:6px 0}
.rec li:first-child{border-top:0}
.rk{font-weight:700;color:var(--muted);text-align:center}
.rec-t{display:flex;align-items:center;gap:10px;min-width:0}
.rec-t:hover .rec-n b{text-decoration:underline}
.pastille.sm{width:30px;height:30px}
.pastille.sm .fi{width:21px;height:21px}
.rec-n{display:flex;flex-direction:column;min-width:0}
.rec-n b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rec-n .muted{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rec-v{font-size:16px;white-space:nowrap}
.kv{display:grid;grid-template-columns:1fr;gap:2px;margin:0}
.kv dt{font-size:13px;color:var(--muted);margin-top:12px}
.kv dt:first-child{margin-top:0}
.kv dd{margin:0;font-size:16px}
@media (max-width:760px){
  .two{grid-template-columns:1fr}
  .chart-xl{height:320px}
}

/* ---------- parcours ---------- */
.route-box{display:grid;gap:10px;grid-template-columns:minmax(0,1fr)}
.route-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0}
.link-btn{border:0;background:none;padding:0;min-height:36px;color:var(--muted);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}
.link-btn:hover{color:var(--text)}
.ptbl-wrap{overflow-x:auto;margin:0 -4px}
.ptbl{width:100%;border-collapse:collapse;font-size:14px}
.ptbl th{padding:8px 10px;text-align:left;font-size:12px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap}
.ptbl td{padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}
.ptbl td:nth-child(3){white-space:normal;min-width:160px}
.ptbl th,.ptbl td{text-align:left}
.ptbl .num{text-align:right !important}
.ptbl input[type=checkbox]{width:20px;height:20px}
.ptbl tr.best td{background:color-mix(in srgb,#12B5A6 10%,transparent)}
.tag-best{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:#12B5A6;color:#0b1f1d;font-size:11px;font-weight:700}
.rt-actions{margin-top:14px}
.rt-manage{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin:0 0 14px}
.rt-manage input[type=text]{min-height:44px;min-width:220px;padding:0 12px;border:1px solid var(--field-line);border-radius:10px;background:var(--field);color:var(--text);font:inherit;font-size:15px}
.filters input[type=search]{min-height:44px;padding:0 12px;border:1px solid var(--field-line);border-radius:10px;background:var(--field);color:var(--text);font:inherit;font-size:15px}
.chip.f-all{--fam:var(--accent)}
.route-btns{display:flex;flex-wrap:wrap;gap:8px}
.inl{display:inline-flex;margin:0}

/* ---------- comparaison ---------- */
.cdot{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:middle;margin-right:6px;background:var(--c)}
.c0{--c:#F26B21}.c1{--c:#3D8BFD}.c2{--c:#12B5A6}.c3{--c:#8E6CEF}.c4{--c:#E0568F}.c5{--c:#F2B705}.c6{--c:#5DAA3F}.c7{--c:#C75D5D}.c8{--c:#2E8FBF}.c9{--c:#B07A3C}.c10{--c:#7A5BD6}.c11{--c:#6B7A90}
.cm0{--c:#F26B21}.cm1{--c:#3D8BFD}.cm2{--c:#12B5A6}.cm3{--c:#8E6CEF}.cm4{--c:#E0568F}.cm5{--c:#F2B705}.cm6{--c:#5DAA3F}.cm7{--c:#C75D5D}.cm8{--c:#2E8FBF}.cm9{--c:#B07A3C}.cm10{--c:#7A5BD6}.cm11{--c:#6B7A90}
.cmp-page h1{overflow-wrap:anywhere}
.ptbl td.cmp-name{white-space:normal;min-width:150px;max-width:380px}
.cmp-name a:hover{text-decoration:underline}
.cm{width:18px;height:18px;border-radius:50%;background:var(--c);border:3px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.5)}
.race{margin-top:14px;padding:0 20px 18px;display:grid;gap:12px}
.race-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.race-clock{font-size:20px;font-variant-numeric:tabular-nums;margin-left:auto}
.seg{display:inline-flex;border:1px solid var(--field-line);border-radius:var(--r-btn);overflow:hidden}
.seg-b{min-height:44px;min-width:52px;padding:0 12px;border:0;background:var(--card);color:var(--text);font:inherit;font-weight:600;cursor:pointer}
.seg-b.on{background:var(--accent);color:#1c1c1e}
.seg-b + .seg-b{border-left:1px solid var(--field-line)}
#race-range{width:100%;accent-color:var(--accent);margin:0}
.race-live{display:grid;gap:6px}
/* lignes sous la carte : pastille, nom (tronqué si long), distance, vitesse, écart (ou temps final), écart de temps */
.rl{display:grid;grid-template-columns:14px minmax(0,1fr) 84px 96px 88px 78px;grid-template-areas:"c n d v g t";align-items:center;gap:6px 14px;font-size:14px;font-variant-numeric:tabular-nums}
.rl .cdot{grid-area:c;margin:0}
.rl-n{grid-area:n;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.rl-d,.rl-v,.rl-g,.rl-t{text-align:right;white-space:nowrap}
.rl-d{grid-area:d}.rl-v{grid-area:v;color:var(--muted)}.rl-g{grid-area:g}.rl-t{grid-area:t}
.rl-g.fin{font-weight:700}
.ptbl td.win{font-weight:700;color:#12B5A6}
.ptbl tr.sum td{font-weight:700;border-top:2px solid var(--line)}
.cmp-wrap{position:relative;display:flex;flex-direction:column}
.cmp-wrap > .act{flex:1}
.cmp{display:none;position:absolute;top:6px;right:6px;z-index:3;width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer}
.cmp-mode .cmp{display:flex}
.cmp input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.cmp i{position:relative;width:28px;height:28px;border-radius:50%;border:2px solid #fff;background:rgba(0,0,0,.35);box-shadow:0 1px 4px rgba(0,0,0,.4);transition:background .12s}
.cmp input:checked + i{background:var(--accent);border-color:#fff}
.cmp input:checked + i::after{content:"";position:absolute;left:8px;top:3px;width:6px;height:12px;border:solid #1c1c1e;border-width:0 3px 3px 0;transform:rotate(45deg)}
.cmp input:disabled + i{opacity:.35}
.cmp input:focus-visible + i{outline:3px solid var(--accent);outline-offset:2px}
.cmp-bar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 14px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line);box-shadow:0 -4px 18px rgba(0,0,0,.18)}
.pill.primary{background:var(--accent);border-color:var(--accent);color:#1c1c1e}
.pill[aria-disabled="true"]{opacity:.45;pointer-events:none}
@media (max-width:640px){.race-live{gap:10px}.rl{grid-template-columns:14px repeat(3,minmax(0,1fr));grid-template-areas:"c n n n" ". d g t";gap:2px 8px}.rl-v{display:none}.race{padding:0 16px 16px}}
body:has(.cmp-bar:not(.hidden)) main{padding-bottom:96px}
.chart-head .gap-ref{min-height:36px;font-size:13px;margin-left:auto}
.gap-hint{flex:1 0 100%;font-size:12px}
.compte-card{max-width:460px}
.ok-note{margin:0 0 14px;padding:10px 14px;border-radius:10px;background:color-mix(in srgb,#12B5A6 16%,var(--card));border:1px solid #12B5A6;font-size:14px}

/* ---------- segments ---------- */
.seg-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 16px}
.seg-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0}
.seg-form input[type=text]{min-height:44px;min-width:200px;padding:0 12px;border:1px solid var(--field-line);border-radius:10px;background:var(--field);color:var(--text);font:inherit;font-size:15px}
#map.seg-pick,#map.seg-pick .leaflet-interactive{cursor:crosshair}
.seglist{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.seglist li{display:grid;grid-template-columns:minmax(120px,2fr) auto auto auto;align-items:center;gap:6px 16px}
.seglist .seg-rank{display:inline-flex;align-items:center;gap:8px;justify-content:flex-end;white-space:nowrap}
.seglist b{font-variant-numeric:tabular-nums}
@media (max-width:560px){.seglist li{grid-template-columns:1fr auto}.seglist .seg-rank{grid-column:1/-1;justify-content:flex-start;white-space:normal}}

.qbox{display:flex;gap:8px;margin-bottom:10px}
.qbox input{flex:1;min-width:0;min-height:44px;padding:0 14px;border:1px solid var(--field-line);border-radius:var(--r-btn);background:var(--card);color:var(--text);font:inherit;font-size:15px}
.qpills{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}
.qp{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:var(--r-btn-sm);border:1px solid var(--field-line);background:var(--card);color:var(--text);font-size:14px;font-weight:600;text-decoration:none}
.qp:hover{border-color:var(--accent)}
.qp span{opacity:.6}
.qp-sport{border-color:var(--accent)}
.qp-date{border-style:dashed}
.qp-text{font-weight:500}

/* plein écran carte : la carte prend tout l'écran, courbes et lecture en transparence par-dessus */
html.fs-lock{overflow:hidden}
.map-card.fs{position:fixed;inset:0;z-index:2000;border-radius:0;margin:0;background:var(--card);overflow:hidden}
.map-card.fs .map{position:absolute;inset:0;height:100%;width:100%;z-index:0}
.map-card.fs .seg-tools{position:absolute;z-index:1100;top:10px;left:56px;right:60px;padding:0;pointer-events:none}
.map-card.fs .seg-tools>*{pointer-events:auto}
.map-card.fs .seg-tools .pill{background:color-mix(in srgb,var(--card) 82%,transparent);backdrop-filter:blur(4px)}
.map-card.fs .strip-note{display:none}
.fs-bottom{position:absolute;z-index:1100;left:0;right:0;bottom:0;display:flex;flex-direction:column;background:color-mix(in srgb,var(--card) 58%,transparent);backdrop-filter:blur(3px);border-top:1px solid var(--line)}
.fs-bottom .race{margin:0;padding:8px 16px 0;gap:6px}
.fs-bottom .race-live{max-height:10vh;overflow:auto}
.fs-bottom .charts-card{margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;padding:4px 16px 8px}
.map-card.fs .chart-block{display:none}
.map-card.fs .chart-block.fs-on{display:block}
.map-card.fs .chart-box{height:18vh;min-height:90px}
.fs-chartbar{display:flex;gap:10px;align-items:center;margin-bottom:4px}
.fs-chartbar select{min-height:34px}
/* vignettes avec fond de carte */
.map-thumb{position:relative}
.map-thumb .leaflet-container{position:absolute;inset:0;background:var(--line);pointer-events:none}
.map-thumb.has-map .trace{display:none}

/* administration */
.adm-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:6px 0}
.adm-box{margin-top:8px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.adm-more summary{list-style:none;cursor:pointer;display:inline-flex}
.adm-more summary::-webkit-details-marker{display:none}
.adm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.adm-grid>div{display:flex;flex-direction:column;gap:2px}
.adm-grid b{font-size:20px;font-variant-numeric:tabular-nums}
.adm-warn{color:var(--bad);font-size:13px;font-weight:600}
.adm-users td{vertical-align:top}
.h3{margin:0 0 6px;font-size:16px}

/* boutons-icônes de la carte */
.mapbtns{margin-top:8px!important;display:flex;flex-direction:column;gap:8px;background:none;border:0;box-shadow:none}
.mapbtn{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;margin:0;border:0;border-radius:8px;background:var(--card,#fff);color:#1c1c1e;box-shadow:0 1px 5px rgba(0,0,0,.4);cursor:pointer;text-decoration:none}
.leaflet-touch .mapbtn{width:44px;height:44px;box-shadow:none;border:2px solid rgba(0,0,0,.2);background-clip:padding-box;border-radius:8px}
.mapbtn:hover,.mapbtn:focus-visible{background:#f4f4f4;color:#F26B21}
.mapbtn.on{background:#F26B21;color:#fff}
.mapbtn-ic{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mapbtn::after{content:attr(data-tip);position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);white-space:nowrap;padding:5px 9px;border-radius:6px;background:rgba(28,28,30,.92);color:#fff;font-size:13px;font-weight:600;pointer-events:none;opacity:0;transition:opacity .12s}
.mapbtn:hover::after,.mapbtn:focus-visible::after{opacity:1}
@media (hover:none){.mapbtn::after{display:none}}
.leaflet-container .mapbtn{color:#1c1c1e}
.leaflet-container .mapbtn:hover,.leaflet-container .mapbtn:focus-visible{color:#F26B21;background:#f4f4f4}
.leaflet-container .mapbtn.on{background:#F26B21;color:#fff}

.brand img{display:block;border-radius:9px}

.brand img.logo-d{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .brand img.logo-l{display:none}:root:not([data-theme="light"]) .brand img.logo-d{display:block}}
:root[data-theme="dark"] .brand img.logo-l{display:none}
:root[data-theme="dark"] .brand img.logo-d{display:block}
.center{text-align:center}
.adm-checks{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px;font-size:14px}
.adm-checks .chk-ok{color:var(--text)}.adm-checks .chk-warn{color:#b8860b;font-weight:600}.adm-checks .chk-ko{color:var(--bad);font-weight:600}

/* v36 : modifier une sortie, photos ajoutées */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.head-tools{margin-left:auto;display:flex;gap:8px;align-self:center;flex-shrink:0}
.hbtn{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--field-line);border-radius:12px;background:var(--card);color:var(--text);cursor:pointer}
.hbtn:hover,.hbtn:focus-visible{border-color:var(--accent);color:#F26B21}
.hbtn.on::before{content:"";position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:#F26B21}
.hbtn::after{content:attr(data-tip);position:absolute;top:calc(100% + 6px);right:0;white-space:nowrap;padding:5px 9px;border-radius:6px;background:rgba(28,28,30,.92);color:#fff;font-size:13px;font-weight:600;pointer-events:none;opacity:0;transition:opacity .12s;z-index:5}
.hbtn:hover::after,.hbtn:focus-visible::after{opacity:1}
@media (hover:none){.hbtn::after{display:none}}
.ed-panels{margin-bottom:16px}
.ed-panel:not([open]){display:none}
.ed-panel[open]{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px 20px;margin-bottom:12px}
.ed-panel>summary{list-style:none}
.ed-form{display:grid;gap:4px;max-width:640px}
.ed-form input[type=text],.ed-form textarea{padding:10px 12px;border:1px solid var(--field-line);border-radius:10px;background:var(--field);color:var(--text);font:inherit;font-size:15px;width:100%;box-sizing:border-box}
.ed-form input[type=text]{min-height:44px}
.ed-form select{width:100%}
.ed-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.ed-orig{font-size:13px}
.ph-up{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.ph-list{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.ph-list li{display:flex;flex-direction:column;gap:6px}
.ph-list img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:var(--line)}
.ph-btns{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pill.sm{min-height:34px;padding:0 10px;font-size:13px;border-radius:var(--r-btn-sm)}
.pill[disabled]{opacity:.55;cursor:default}

/* v38 : filtres des passages d'un segment */
.seg-filters{display:flex;flex-direction:column;gap:8px;margin:0 0 14px}
.seg-filters .fgroup{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.seg-filters .fgroup>.muted{min-width:56px;font-size:13px}
.seg-filters .pill.on{background:var(--accent);border-color:var(--accent);color:#1c1c1e}
.seg-filters .cnt{font-weight:500;opacity:.7;font-size:12px}
.yr-best{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px}

/* v39 : suggestions de segments */
.sugs{margin-bottom:22px}
.sug-intro{margin:0 0 12px}
.sug-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:10px}
.sug .act-body{padding-bottom:14px}
.sug-reset{margin-top:10px}
.sug-reset .link{background:none;border:0;padding:0;font:inherit;cursor:pointer}
.nav-badge{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:#F26B21;color:#fff;font-size:12px;font-weight:700;line-height:18px;text-align:center;vertical-align:1px}

/* v42 : suivi (forme / objectifs) */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 8px}
.kpi{display:flex;flex-direction:column;gap:2px;padding:14px 16px}
.kpi b{font-size:30px;line-height:1.1}
.kpi small{font-size:12px}
.kpi.st-fresh b,.kpi.st-ok b{color:var(--ok)}.kpi.st-warn b{color:#c77700}.kpi.st-bad b{color:var(--bad)}
.load-state{margin:4px 0 14px}
.load-alert{margin:0 0 14px;padding:12px 14px;border-radius:12px;font-size:14px;font-weight:500;border:1px solid #c77700;background:color-mix(in srgb,#F2B705 16%,var(--card))}
.load-alert.bad{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 14%,var(--card))}
.toolbar-lines{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0 0 14px}
.toolbar-lines .fgroup,.metric-pills{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.toolbar-lines .fgroup>.muted{font-size:13px;min-width:52px}
.toolbar-lines .pill.on,.metric-pills .pill.on{background:var(--accent);border-color:var(--accent);color:#1c1c1e}
.metric-pills{margin:0 0 10px}
.chart-box{position:relative;height:240px}.chart-box.tall{height:320px}
.legend-note{font-size:13px;margin:8px 0 0}
.sw{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:baseline}.sw-ctl{background:#3D8BFD}.sw-atl{background:#F26B21}
main>section.card+section.card,main>section.card+details.card,.toolbar-lines+section.card{margin-top:14px}
.goals>.card{margin-top:0}
.hist.dense .hcol:not(:nth-child(3n+1)) small{visibility:hidden}
details.how summary{cursor:pointer;font-weight:600}
.how p{font-size:14px}
.goals{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;margin:0 0 14px}
.goal-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 12px}
.m0{margin:0}
.gauge{position:relative;height:14px;border-radius:999px;background:var(--field);border:1px solid var(--line);overflow:visible;margin:0 0 8px}
.gauge-fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--accent)}
.goal.st-done .gauge-fill{background:var(--ok)}.goal.st-late .gauge-fill{background:#c77700}
.gauge-pace{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--text);opacity:.55}
.goal-num{margin:0 0 4px;font-size:16px}
.hist{position:relative;display:flex;align-items:flex-end;gap:3px;height:96px;margin:14px 0 6px}
.hcol{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;min-width:0}
.hcol i{display:block;width:100%;max-width:22px;background:rgba(242,107,33,.45);border-radius:3px 3px 0 0}
.hcol.hit i{background:var(--ok)}.hcol.now i{outline:2px solid var(--accent);outline-offset:1px}
.hcol small{font-size:10px;color:var(--muted);line-height:18px;height:18px;white-space:nowrap;overflow:hidden}
.htarget{position:absolute;left:0;right:0;height:0;border-top:1px dashed var(--muted);opacity:.6;pointer-events:none}
.goal-edit{margin-top:10px}.goal-form{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end;margin-top:10px}
.gfield{display:flex;flex-direction:column;gap:4px;font-size:13px}
.gfield select,.gfield input{min-height:44px;padding:0 10px;border:1px solid var(--field-line);background:var(--field);color:var(--text);border-radius:10px;font:inherit;font-size:15px}
.gfield input{width:120px}
.goal-btns{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:760px){.kpis{grid-template-columns:repeat(2,1fr)}.goals{grid-template-columns:1fr}.chart-box.tall{height:260px}}

/* v43 : carte globale */
.carte-filters{display:flex;flex-direction:column;gap:8px;margin:0 0 14px}
.carte-filters .fgroup{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.carte-filters .fgroup>.muted{min-width:56px;font-size:13px}
.carte-filters .pill.on,.carte-modes .pill.on{background:var(--accent);border-color:var(--accent);color:#1c1c1e}
.carte-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px}
.carte-modes{display:flex;gap:6px;flex-wrap:wrap}
.carte-map{height:72vh;min-height:420px}
.carte-card.fs .carte-map{height:100%}
.lg-dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:baseline}

/* v44 : records */
.rec-intro{margin:0 0 10px;font-size:14px}
.tabs.sub{margin:0 0 14px}
.rec-group+.rec-group{margin-top:14px}
.h3{font-size:14px;margin:18px 0 6px;color:var(--muted);font-weight:600;text-transform:none}
.rec-table{border-top:1px solid var(--line)}
.rec-row{border-bottom:1px solid var(--line)}
.rec-row>summary{display:grid;grid-template-columns:130px 110px 100px 1fr;align-items:center;gap:8px;min-height:46px;padding:4px 2px;cursor:pointer;list-style:none}
.rec-row>summary::-webkit-details-marker{display:none}
.rec-row>summary:hover{background:var(--field)}
.rec-target{font-weight:600}.rec-val{font-weight:700;font-variant-numeric:tabular-nums}
.rec-top{margin:0;padding:4px 0 12px 130px;display:flex;flex-direction:column;gap:6px;font-size:14px}
.rec-top li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.rec-top .rec-val{min-width:76px}
.rec-abs dd{margin:0 0 4px}
.rec-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.rec-badge{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:color-mix(in srgb,#F2B705 22%,var(--card));border:1px solid #c79a00;font-size:12px;font-weight:600;color:var(--text)}
@media (max-width:640px){.rec-row>summary{grid-template-columns:1fr auto;grid-template-areas:"t v" "d r"}.rec-row .rec-target{grid-area:t}.rec-row .rec-val{grid-area:v;text-align:right}.rec-row .rec-rate{grid-area:r;text-align:right}.rec-row .rec-date{grid-area:d}.rec-top{padding-left:0}}

/* v46 : parcours prévus */
.plan-import{margin:0 0 12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--field)}
.plan-import[hidden]{display:none}
.plan-import>p{margin:12px 0 0;font-size:14px}
.plan-import-row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end}
.file-pill{cursor:pointer}
.imp-log{list-style:none;margin:10px 0 0;padding:0;font-size:14px;display:flex;flex-direction:column;gap:4px}
.imp-log .imp-err{color:var(--bad)}
.act.plan .plan-link{display:block}
.act.plan .act-title{color:var(--text);text-decoration:none;font-weight:700}
.chip-st{display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1;min-height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid var(--line);background:var(--field)}
.chip-st.st-done{background:color-mix(in srgb,var(--ok) 18%,var(--card));border-color:var(--ok)}
.chip-st.st-partial{background:color-mix(in srgb,#F2B705 22%,var(--card));border-color:#c79a00}
.chip-st.st-todo{background:color-mix(in srgb,#3D8BFD 14%,var(--card));border-color:#3D8BFD}
.star{border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:var(--muted);min-width:36px;min-height:36px}
.star.on{color:#F2B705}
.plan-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;margin:6px 0 14px}
.plan-head-act{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.plan-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.plan-stats div{display:flex;flex-direction:column;gap:2px}.plan-stats b{font-size:20px}
.plan-note{margin-top:10px!important;font-size:13px}
.plan-legend{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;padding:10px 16px 12px}
.lg-line{display:inline-block;width:22px;height:5px;border-radius:3px;vertical-align:middle}.lg-blue{background:#3D8BFD}.lg-red{background:#E0564F}
.plan-matches{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.gfield.wide{flex:1 1 100%}.gfield textarea{padding:10px;border:1px solid var(--field-line);background:var(--field);color:var(--text);border-radius:10px;font:inherit;font-size:15px;min-height:70px}
.gfield.wide input{width:100%}
main>.stack>*+*{margin-top:14px}

/* v47 : collections de parcours prévus, carte des parcours, éditeur */
.gfield[hidden],.ed-results[hidden],.card[hidden],input[hidden],.plan-newcol .inline-form[hidden]{display:none!important}
.plan-cols{margin:0 0 14px}
.plan-cols-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.plan-colchips{display:flex;flex-wrap:wrap;gap:6px}
.plan-colchips .pill small{opacity:.7;margin-left:4px}
.plan-colchips .pill.on,.plan-viewbar .pill.on{background:var(--accent);border-color:var(--accent);color:#1c1c1e}
.plan-colhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.plan-colact{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}
.plan-colact details,.plan-newcol{position:relative}
.plan-colact summary,.plan-newcol summary{list-style:none;cursor:pointer}
.plan-colact summary::-webkit-details-marker,.plan-newcol summary::-webkit-details-marker{display:none}
.inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.inline-form input[type=text]{min-height:40px;padding:0 10px;border:1px solid var(--field-line);background:var(--field);color:var(--text);border-radius:10px;font:inherit;font-size:15px;min-width:200px}
.plan-viewbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:6px 0 12px}
.plan-cols-tools{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px}
.hbtn.sm{width:34px;height:34px;border-radius:var(--r-btn-sm)}
.hbtn.sm .mapbtn-ic{width:20px;height:20px}
.hbtn[aria-expanded="true"]{border-color:var(--accent);color:var(--accent)}
.plan-movebar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:0 0 14px;padding:8px 12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-btn);box-shadow:var(--shadow)}
.plan-movebar.is-hidden{display:none}
.plan-sel,.plan-selact{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px}
.plan-selend{margin-left:auto}
.plan-movebar select,.plan-movebar input[type=text]{min-height:34px;padding:0 8px;border:1px solid var(--field-line);background:var(--field);color:var(--text);border-radius:var(--r-btn-sm);font:inherit;font-size:14px}
.pill.danger{color:var(--bad)}
.pill.danger:hover:not([disabled]){border-color:var(--bad)}
.pill[disabled]:hover{border-color:var(--field-line)}.pill.primary[disabled]:hover{border-color:var(--accent)}
@media (min-width:700px){.plan-movebar{position:sticky;top:8px;z-index:15}}
.plan-pick{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:36px;cursor:pointer}
.plan-pick input{width:18px;height:18px;accent-color:var(--accent)}
.act-head .plan-pick{margin-left:-6px}
.lg-green{background:#2FB67C}.lg-orange{background:#F5A524}.lg-grey{background:#8A94A6}
.plan-mapitem-t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* éditeur */
.ed-bar{display:flex;flex-direction:column;gap:12px;margin:0 0 14px}
.ed-search{display:flex;gap:8px;position:relative;flex-wrap:wrap}
.ed-search input{flex:1 1 260px;min-height:40px;padding:0 12px;border:1px solid var(--field-line);background:var(--field);color:var(--text);border-radius:10px;font:inherit;font-size:15px}
.ed-results{position:absolute;top:44px;left:0;right:0;z-index:1200;list-style:none;margin:0;padding:4px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:560px}
.ed-results li{padding:6px 10px}.ed-results button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--text);font:inherit;font-size:14px;padding:8px 6px;border-radius:8px;cursor:pointer;min-height:40px}
.ed-results button:hover{background:var(--field)}
.ed-tools{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end}
.ed-mode{display:flex;gap:6px;flex-wrap:wrap}
.ed-mode .pill.on{background:var(--accent);border-color:var(--accent);color:#1c1c1e}
.ed-btns{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.ed-btns .pill:disabled{opacity:.45;cursor:default}
.ed-map{height:min(72vh,720px)}
.ed-map.leaflet-container{cursor:crosshair}
.ed-status{margin:0;padding:10px 16px;font-size:15px;border-top:1px solid var(--line)}
.ed-warn{color:var(--bad)}
.ed-wp{background:none!important;border:0!important}
.ed-wp span{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.45);font:700 11px/1 system-ui,sans-serif;color:#fff;background:#3D8BFD;cursor:grab}
.ed-wp-start span{background:#2FB67C}.ed-wp-end span{background:#E0564F}
.ed-pop{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
#ed-form .pill:disabled{opacity:.5;cursor:default}

/* v47 : éditeur façon OpenRunner, profil d'altitude coloré par pente, types de voies */
.ed-shell{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px;align-items:start;margin:0 0 14px}
.ed-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:76px}
.ed-side .gfield{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.ed-side .gfield input[type=text],.ed-side .gfield select{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--field-line);background:var(--field);color:var(--text);border-radius:12px;font:inherit;font-size:15px}
.ed-side .gfield small{font-size:12px;line-height:1.35}
.ed-seg{display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:12px;background:var(--field);border:1px solid var(--field-line)}
.ed-seg button{min-height:40px;border:0;border-radius:9px;background:none;color:var(--muted);font:inherit;font-weight:600;cursor:pointer}
.ed-seg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.25)}
.ed-wplist{border:1px solid var(--field-line);border-radius:12px;background:var(--field)}
.ed-wplist>summary{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:0 12px;cursor:pointer;list-style:none;font-weight:600}
.ed-wplist>summary::-webkit-details-marker{display:none}
.ed-count{min-width:28px;text-align:center;padding:2px 8px;border-radius:8px;background:var(--card);font-size:14px}
.ed-wps{list-style:none;margin:0;padding:0 6px 8px;max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.ed-wps li{display:flex;align-items:center;gap:4px}
.ed-wpgo{flex:1;display:flex;align-items:center;gap:8px;min-height:38px;padding:0 6px;border:0;border-radius:8px;background:none;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.ed-wpgo:hover{background:var(--card)}
.ed-wptag{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:#fff;font-size:11px;font-weight:700;background:#3D8BFD}
.ed-wptag.s{background:#2FB67C}.ed-wptag.e{background:#E0564F}
.ed-wpdel{width:34px;height:34px;border:0;border-radius:8px;background:none;color:var(--muted);font-size:20px;cursor:pointer}
.ed-wpdel:hover{background:var(--card);color:var(--bad)}
.ed-note{font-size:13px;line-height:1.4}
.ed-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.ed-toolbar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;justify-content:space-between}
.ed-search{display:flex;gap:8px;position:relative;flex:1 1 320px}
.ed-search input{flex:1;min-height:40px;padding:0 12px;border:1px solid var(--field-line);background:var(--field);color:var(--text);border-radius:10px;font:inherit;font-size:15px}
.ed-btns{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ed-btns .pill:disabled{opacity:.45;cursor:default}
.ed-waycb{margin-left:6px;font-size:13px}
.ed-mapcard{position:relative}
.ed-overlay{position:absolute;z-index:1100;top:12px;left:56px;right:56px;display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;pointer-events:none}
.ed-overlay>*{pointer-events:auto}
.ed-stats{position:relative;display:flex;align-items:center;gap:18px;padding:8px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:0 4px 16px rgba(0,0,0,.25)}
.ed-stats div{display:flex;flex-direction:column;line-height:1.15}.ed-stats span{font-size:12px}.ed-stats b{font-size:20px;font-variant-numeric:tabular-nums}
.ed-stats .pill:disabled{opacity:.5;cursor:default}
.ed-results{position:absolute;top:44px;left:0;right:0;z-index:1200;list-style:none;margin:0;padding:4px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:560px}
.ed-results li{padding:6px 10px}.ed-results button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--text);font:inherit;font-size:14px;padding:8px 6px;border-radius:8px;cursor:pointer;min-height:40px}
.ed-results button:hover{background:var(--field)}
.ed-map{height:min(70vh,700px)}
.ed-map.leaflet-container{cursor:crosshair}
.ed-status{margin:0;padding:10px 16px;font-size:15px;border-top:1px solid var(--line)}
.ed-warn{color:var(--bad)}
.ed-wp{background:none!important;border:0!important}
.ed-wp span{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.45);font:700 11px/1 system-ui,sans-serif;color:#fff;background:#3D8BFD;cursor:grab}
.ed-wp-start span{background:#2FB67C}.ed-wp-end span{background:#E0564F}
.ed-pop{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.ed-side .pill:disabled{opacity:.5;cursor:default}
.ed-profcard{margin:0 0 14px}
.ed-profgrid{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:18px;align-items:start}
.ed-profgrid:has(.ed-donut-host[hidden]){grid-template-columns:minmax(0,1fr)}
.ed-donut-host[hidden]{display:none}
.ed-profright{min-width:0}
.ep-host{position:relative;height:250px;width:100%}
.ep-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y;cursor:crosshair}
.ep-cursor{position:absolute;width:0;border-left:1.5px solid var(--text);pointer-events:none;opacity:.7}
.ep-cursor[hidden],.ep-tip[hidden]{display:none}
.ep-tip{position:absolute;pointer-events:none;z-index:3;padding:6px 10px;border-radius:10px;background:var(--card);border:1px solid var(--line);box-shadow:0 4px 14px rgba(0,0,0,.3);font-size:13px;line-height:1.35;white-space:nowrap}
.ep-slopes{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px}
.ep-slopes li{display:inline-flex;align-items:center;gap:6px}
.ep-sw{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid rgba(0,0,0,.25)}
.ep-donut{display:block;width:100%;max-width:210px;margin:0 auto;padding:0;border:0;background:none;color:inherit;font:inherit}
button.ep-donut{cursor:pointer;border-radius:50%}
.ep-donut svg{display:block;width:100%;height:auto}
.ep-donut.off{opacity:.45}
.ep-donut-n{font:700 17px system-ui,sans-serif;fill:var(--text)}
.ep-ways{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.ep-ways li{display:grid;grid-template-columns:34px 1fr auto;column-gap:10px;align-items:center;font-size:13px}
.ep-ways .ep-way-t{line-height:1.25}.ep-ways small{grid-column:2/4}
.ep-sample{display:block}
.plan-note{margin-top:10px!important;font-size:13px}
.plan-note .inline-form{display:inline-flex;margin:6px 0 0 6px}
@media (max-width:960px){
  .ed-shell{grid-template-columns:1fr}.ed-side{position:static}
  .ed-profgrid{grid-template-columns:1fr}
  .ed-overlay{position:static;display:block;pointer-events:auto}
  .ed-tools{border-radius:0;border:0;border-bottom:1px solid var(--line);box-shadow:none;justify-content:flex-start}
  .ed-stats{position:static;border-radius:0;border:0;border-bottom:1px solid var(--line);box-shadow:none;flex-wrap:wrap;gap:10px 18px}
  .ed-stats .pill{margin-left:auto}
}
.ep-slopes .ep-slopes-sum{flex:1 1 100%;color:var(--muted);margin-top:2px}
.ed-stats div[hidden]{display:none}
.ed-pastn{font-variant-numeric:tabular-nums}
main.wide{max-width:min(2200px,100%)}
.ed-side [hidden]{display:none!important}
.ed-statusbox{border-top:1px solid var(--line);padding-top:12px;margin-top:2px}
.ed-statusbox .ed-status{padding:0 0 8px;border:0;font-size:14px;line-height:1.4}
.ed-shell{grid-template-columns:300px minmax(0,1fr)}
.ed-map{height:min(78vh,900px)}
.ed-openpick{min-height:34px;max-width:230px;padding:0 10px;border:1px solid var(--field-line);background:var(--field);color:var(--text);border-radius:var(--r-btn-sm);font:inherit;font-size:13px}
.ed-tabbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ed-tab{display:inline-flex;align-items:center;gap:2px;padding:0 4px 0 10px;border:1px solid var(--line);border-radius:var(--r-btn-sm);background:var(--card);max-width:100%}
.ed-tab.on{border-color:var(--text);box-shadow:0 1px 6px rgba(0,0,0,.18)}
.ed-tabdot{width:12px;height:12px;border-radius:50%;flex:none;border:1px solid rgba(0,0,0,.25)}
.ed-tabgo{min-height:36px;padding:0 8px;border:0;background:none;color:var(--text);font:inherit;font-size:14px;cursor:pointer;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-tab.on .ed-tabgo{font-weight:700}
.ed-tabx{width:30px;height:30px;border:0;border-radius:8px;background:none;color:var(--muted);font-size:18px;cursor:pointer}
.ed-tabx:hover{background:var(--field);color:var(--bad)}
.ed-tabadd{min-height:36px;padding:0 14px;border:1px dashed var(--field-line);border-radius:var(--r-btn-sm);background:none;color:var(--text);font:inherit;font-size:14px;cursor:pointer}
.ed-tabadd:hover{background:var(--card)}
@media (max-width:960px){.ed-shell{grid-template-columns:1fr}}
/* Prévus : statuts + filtres sur une seule ligne (retour à la ligne automatique si l'écran est étroit) */
form#filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
form#filters .chips{margin-bottom:0;gap:6px;flex:0 1 auto;min-width:0;max-width:100%}
form#filters .toolbar{flex:1 1 auto;flex-wrap:nowrap;gap:8px;justify-content:flex-end}
form#filters .toolbar .lbl{white-space:nowrap}
form#filters .toolbar input[type=search]{width:115px;min-width:0}
form#filters .toolbar .pill{white-space:nowrap}
@media (max-width:1250px){form#filters .toolbar{flex-wrap:wrap;justify-content:flex-start}form#filters .toolbar .lbl{white-space:normal}}

/* v53 : santé du système, notifications, saisies de l'administration */
:root{--warn:#b86e00}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--warn:#f0b04a}}
:root[data-theme="dark"]{--warn:#f0b04a}
.adm-row input[type=text],.adm-row input[type=password],.adm-row input[type=email],.adm-row input[type=url],.adm-row input[type=number],.nf input[type=text],.nf input[type=password],.nf input[type=number],.nf>section>.lbl input[type=text]{min-height:44px;padding:0 12px;border:1px solid var(--field-line);border-radius:10px;background:var(--field);color:var(--text);font:inherit;font-size:15px;min-width:0}
.nf .lbl{margin-bottom:0}
.nf .lbl input[type=text],.nf .lbl input[type=password],.nf .lbl input[type=number]{width:100%}
.nf .adm-row .lbl{flex:1 1 220px}
.nf .lbl select{width:100%}
.nf-events{display:flex;flex-direction:column;gap:2px;margin:8px 0 0 4px}
.nf .check{min-height:36px}
.nf section{margin-bottom:16px}
.nf .adm-more summary.pill{margin-top:8px}
.hl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.hl-row{display:grid;grid-template-columns:28px minmax(140px,1.1fr) minmax(120px,1fr);gap:2px 12px;align-items:baseline;padding:10px 0;border-top:1px solid var(--line)}
.hl-row:first-child{border-top:0}
.hl-dot{grid-row:1;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:13px;font-weight:700;line-height:1;background:var(--line);color:var(--muted)}
.hl-ok .hl-dot{background:color-mix(in srgb,var(--ok) 18%,var(--card));color:var(--ok)}
.hl-warn .hl-dot{background:color-mix(in srgb,var(--warn) 20%,var(--card));color:var(--warn)}
.hl-err .hl-dot{background:var(--bad);color:#fff}
.hl-label{font-weight:600}
.hl-label a{border-bottom:1px dotted var(--muted)}
.hl-val{font-variant-numeric:tabular-nums}
.hl-warn .hl-val{color:var(--warn);font-weight:600}.hl-err .hl-val{color:var(--bad);font-weight:700}
.hl-det{grid-column:2/-1;color:var(--muted);font-size:13.5px;line-height:1.4}
.hl-banner{display:flex;align-items:center;gap:16px;margin-bottom:16px;border-left:6px solid var(--ok)}
.hl-banner>div{display:flex;flex-direction:column;gap:2px}
.hl-banner b{font-size:19px}
.hl-big{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border-radius:50%;font-size:22px;font-weight:700;background:color-mix(in srgb,var(--ok) 18%,var(--card));color:var(--ok)}
.hl-banner.hl-warn{border-left-color:var(--warn)}.hl-banner.hl-warn .hl-big{background:color-mix(in srgb,var(--warn) 20%,var(--card));color:var(--warn)}
.hl-banner.hl-err{border-left-color:var(--bad)}.hl-banner.hl-err .hl-big{background:var(--bad);color:#fff}
.svc-ok{color:var(--ok);font-weight:600}.svc-ko{color:var(--bad);font-weight:600}
.diag{display:grid;grid-template-columns:minmax(160px,max-content) 1fr;gap:8px 18px;margin:0;align-items:baseline}
.diag dt{color:var(--muted);font-size:14px}.diag dd{margin:0;overflow-wrap:anywhere}
.health-pill{min-width:44px;justify-content:center;color:var(--warn);border-color:var(--warn)}
.health-pill.hb-err{color:var(--bad);border-color:var(--bad)}
.nav-badge.hb-err{background:var(--bad)}.nav-badge.hb-warn{background:var(--warn)}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;padding:1px 5px;border-radius:6px;background:var(--field);border:1px solid var(--line);overflow-wrap:anywhere}
@media (max-width:760px){.hl-row{grid-template-columns:26px 1fr}.hl-val{grid-column:2}.hl-det{grid-column:2}.diag{grid-template-columns:1fr;gap:2px}.diag dd{margin-bottom:8px}}

/* ---- v54 : météo des sorties ---- */
:root{--wx-sun:#dd8500;--wx-moon:#6f7fa0;--wx-rain:#2a73c0;--wx-snow:#2f98b3;--wx-storm:#8447c4}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--wx-sun:#ffc233;--wx-moon:#b5c3dc;--wx-rain:#6db3f2;--wx-snow:#9fe0f2;--wx-storm:#c9a2f7}}
:root[data-theme="dark"]{--wx-sun:#ffc233;--wx-moon:#b5c3dc;--wx-rain:#6db3f2;--wx-snow:#9fe0f2;--wx-storm:#c9a2f7}
.wx-ico{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.wx-ico .wx-cl{stroke:var(--muted)}
.wx-ico .wx-fill{fill:var(--card)}
.wx-ico .wx-dim{stroke:color-mix(in srgb,var(--muted) 60%,var(--card))}
.wx-ico .wx-sun{stroke:var(--wx-sun)}
.wx-ico .wx-moon{stroke:var(--wx-moon)}
.wx-ico .wx-dr{stroke:var(--wx-rain)}
.wx-ico .wx-sn{stroke:var(--wx-snow);fill:var(--wx-snow)}
.wx-ico .wx-st{stroke:var(--wx-storm);fill:var(--wx-storm);stroke-width:1.2}
.wx-chip{display:inline-flex;align-items:center;gap:3px;flex:none;white-space:nowrap;font-size:13px;color:var(--text);vertical-align:middle}
.wx-chip b{font-weight:600}
.act-head>.wx-chip{align-self:flex-start;margin-left:auto;padding-top:2px}
.wx-card .wx-top{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.wx-ico.wx-big{width:58px;height:58px;stroke-width:1.5}
.wx-temp{font-size:26px;font-weight:700}
.wx-cond{font-size:15px;margin-top:2px}
.wx-note{display:inline-block;margin-left:8px;padding:1px 9px;border-radius:999px;font-size:12px;font-weight:600;background:color-mix(in srgb,var(--wx-rain) 16%,var(--card));color:var(--text)}
.wx-stats b{font-size:18px}
.wx-stats .wx-dir{display:inline-flex;align-items:center;gap:3px;font-size:inherit}
.wx-arrow{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* champs « Comparer avec » / « Associer à un parcours » : le menu ne doit jamais dépasser de la carte (téléphone) */
.lbl.inline{min-width:0;max-width:100%}
.lbl.inline select{min-width:0;max-width:100%;flex:1 1 auto}

/* ---- v54 : Mon année ---- */
.an{display:flex;flex-direction:column;gap:14px}
.an-years{position:relative;display:flex;gap:6px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin}
.an-years .pill{flex:none}
.an-years .pill.on{background:var(--accent);border-color:var(--accent);color:#1c1c1e}
.an-hero .an-sub{margin:2px 0 12px;font-size:14px}
.kpis.six{grid-template-columns:repeat(3,1fr);margin:0}
.kpi .kpi-d{font-weight:600}
.kpi .kpi-d.up{color:var(--ok)}
.kpi .kpi-d.down{color:var(--muted)}
.an-months{display:block;width:100%;height:200px;overflow:visible}
.an-months text{font-family:inherit;font-size:11px;fill:var(--muted)}
.an-months .an-mval{fill:var(--text)}
.an-months .an-ms{display:none}
.an-base{stroke:var(--line);stroke-width:1}
.an-hit{fill:transparent}
.an-months a:hover .an-hit{fill:color-mix(in srgb,var(--accent) 9%,transparent)}
.an-mbar{fill:var(--accent)}
.an-mghost{fill:color-mix(in srgb,var(--muted) 38%,var(--card))}
.sw.an-sw-cur{background:var(--accent)}
.sw.an-sw-prev{background:color-mix(in srgb,var(--muted) 38%,var(--card))}
.an-detail{margin-top:12px}
.an-detail summary{padding:8px 0;cursor:pointer;font-weight:600;font-size:14px}
.an-note{margin:0 0 12px;font-size:14px}
.an-more{margin:12px 0 0}
.an-fine{font-size:13px}
.an-wx-ext{margin-top:14px}
.an-two{align-items:start}
.an-fam,.an-types,.an-hl,.an-rec,.an-top,.an-goals{list-style:none;margin:0;padding:0}
.an-fam{display:grid;gap:14px}
.an-fam li{display:flex;gap:12px;align-items:flex-start}
.an-fam-body{flex:1;min-width:0}
.an-fam-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.an-fam-sub{margin-top:3px;font-size:13px}
.an-bar{display:block;width:100%;height:8px;margin-top:5px;border-radius:4px;overflow:hidden;background:var(--line)}
.an-bar-fill{fill:var(--fam,var(--accent))}
.an-bar-fill.done{fill:var(--ok)}
.an-types{display:grid;gap:10px;margin-top:10px}
.an-types li{display:grid;grid-template-columns:30px 1fr;gap:0 10px;align-items:center}
.an-types .muted{grid-column:2;font-size:13px}
.an-hl{display:flex;flex-direction:column}
.an-hl li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 12px;align-items:baseline;padding:9px 0;border-top:1px solid var(--line)}
.an-hl li:first-child{border-top:0;padding-top:0}
.an-hl li>.muted{font-size:13px}
.an-hl li>b{text-align:right}
.an-hl b .wx-ico{width:18px;height:18px;vertical-align:-3px}
.an-hl-d{grid-column:1/-1;font-size:14px;overflow-wrap:anywhere}
.an-rec{display:flex;flex-direction:column}
.an-rec li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;padding:7px 0;border-top:1px solid var(--line)}
.an-rec li:first-child{border-top:0}
.an-rec-t{flex:1 0 108px;font-weight:600}
.an-rec-a{margin-left:auto;font-size:14px}
.an-goals{display:grid;gap:16px}
.an-goal-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 8px}
.an-goal-msg{margin-top:4px;font-size:13px}
.an-top{display:flex;flex-direction:column}
.an-top li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;min-width:0;padding:8px 0;border-top:1px solid var(--line)}
.an-top li:first-child{border-top:0;padding-top:0}
.an-top .link{overflow-wrap:anywhere}
.an-top .muted{flex:none;font-size:13px;white-space:nowrap}
.an-photos{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.an-photos a{display:block;aspect-ratio:1/1;overflow:hidden;border-radius:10px;background:var(--field)}
.an-photos img{display:block;width:100%;height:100%;object-fit:cover}
.strip-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.strip-link{flex:none;color:var(--accent-text);font-weight:600;white-space:nowrap}
.strip-link:hover{text-decoration:underline}
@media (max-width:760px){
  .kpis.six{grid-template-columns:repeat(2,1fr)}
  .kpis.six .kpi b{font-size:24px;white-space:nowrap}
  .an-photos{grid-template-columns:repeat(3,1fr)}
  .an-months .an-ml{display:none}
  .an-months .an-ms{display:inline}
  .an-months .an-mval:not(.top){display:none}
}
@media (max-width:420px){.suivi-tabs a{padding-left:9px;padding-right:9px}}
.off-list{list-style:none;padding:0;margin:12px 8px 0;display:flex;flex-direction:column;gap:8px;align-items:stretch}
.off-list .pill{display:flex;justify-content:center;text-align:center}

/* v56 : page Activités, filtres sur une seule ligne (pastilles réduites à l'icône, nom affiché pour les familles cochées) */
form.act-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-bottom:14px}
form.act-filters .chips{margin:0;gap:6px;flex:0 1 auto}
form.act-filters .chip span{min-height:40px;padding:0 8px}
form.act-filters .chip .fi{width:24px;height:24px}
@media (max-width:420px){form.act-filters .chip span{padding:0 6px}}
form.act-filters .chip .fam-n{display:none;font-style:normal}
form.act-filters .chip input:checked + span .fam-n{display:inline}
form.act-filters .chip input:checked + span{padding:0 14px}
.mf-cb{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.mf-sum{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 6px;cursor:pointer;font-weight:600;white-space:nowrap}
.mf-sum::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.mf-cb:checked + .mf-sum::after{transform:rotate(-135deg) translateY(-2px)}
.mf-cb:focus-visible + .mf-sum{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}
form.act-filters .toolbar{margin-left:auto;flex-wrap:wrap;gap:8px;align-items:center}
form.act-filters .toolbar .lbl{white-space:nowrap}
form.act-filters .toolbar .pill{white-space:nowrap}
.mf-panel{display:none;flex:0 0 100%}
.mf-cb:checked ~ .mf-panel{display:block}
@media (max-width:720px){form.act-filters .toolbar{margin-left:0;width:100%}}
/* v56 : plein écran, 2e courbe superposée et légende du tracé coloré par la fréquence cardiaque */
.fs-chartbar{flex-wrap:wrap}
.chart-stat2{flex-basis:100%;text-align:right}
.hr-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;max-width:calc(100vw - 40px);padding:3px 8px;background:var(--card);color:var(--text);font-size:12px;border:1px solid var(--line);border-radius:8px}
.hr-z{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.hr-sw{display:block;width:10px;height:10px;border-radius:3px}
.hr-u{color:var(--muted)}
.act-stats .chip-st{display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:12px;color:var(--text)}
@media (max-width:480px){nav.tabs .tab-sep{margin-left:3px;margin-right:3px}nav.tabs{gap:2px}nav.tabs a{padding:12px 8px;font-size:14px}}
.mapbtn-ic .dot{fill:currentColor;stroke:none}

/* Parcours > Téléchargés */
.dl-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.dl-item{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.dl-main{min-width:0;flex:1 1 220px}
.dl-name{font-weight:700;font-size:16px;overflow-wrap:anywhere}
.dl-meta{font-size:13px;margin-top:2px}
.dl-badge{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--line);color:var(--text)}
.dl-badge.warn{background:#f6c343;color:#1c1c1e}
.dl-act{display:flex;gap:8px;flex-wrap:wrap}
.dl-foot{margin:14px 0 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.dl-foot[hidden]{display:none}
.dl-intro{margin:4px 0 10px}
.seg-sub{margin-top:18px}

/* « Mon année » : calendrier à pastilles (couleur = sport, taille = durée) */
.dots-wrap{max-width:720px;margin:6px auto 0}
.dots{display:block;width:100%;height:auto}
.dots-m{font-size:12px;font-weight:600;fill:var(--text);font-family:inherit}
.dc{fill:var(--fam)}
.dc.front{stroke:var(--card);stroke-width:1.2}
.dd0{fill:color-mix(in srgb,var(--muted) 42%,transparent)}
.dd0.fut{opacity:.45}
.dd-today{fill:none;stroke:var(--text);stroke-width:1.2;opacity:.75}
.dh{fill:transparent}
.dots a{cursor:pointer;-webkit-tap-highlight-color:transparent}
.dots a:hover .dc{stroke:var(--text);stroke-width:1}
/* glisser pour changer d'année / d'activité : léger fondu au départ de la page */
body.sw-go-l main,body.sw-go-r main{transition:transform .14s ease-in,opacity .14s ease-in;opacity:0}
body.sw-go-l main{transform:translateX(-26px)}
body.sw-go-r main{transform:translateX(26px)}
@media (prefers-reduced-motion:reduce){body.sw-go-l main,body.sw-go-r main{transition:none;transform:none}}
@media (max-width:480px){.an-dots{padding-left:10px;padding-right:10px}}

/* Créés, vue carte : même disposition que l'éditeur (liste à gauche, carte large, plein écran) */
.plan-map{height:min(78vh,900px)}
.pl-side{gap:10px}
.pl-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.pl-count{font-size:13px}
.pl-fold{margin-left:auto;border:0;background:none;color:var(--accent-text,var(--text));font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:underline;min-height:32px}
.pl-fold[hidden]{display:none}
.pl-body{display:flex;flex-direction:column;gap:10px;min-height:0}
.pl-tools{display:flex;gap:6px;flex-wrap:wrap}
.plan-maplist{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:calc(min(78vh,900px) - 150px);display:flex;flex-direction:column;gap:2px}
.plan-mapli{display:flex;align-items:center;gap:2px;border-radius:10px}
.plan-mapli.on{background:var(--field);outline:2px solid var(--accent)}
.plan-dotbtn{flex:none;display:flex;align-items:center;justify-content:center;width:40px;height:44px;padding:0;border:0;border-radius:10px;background:none;cursor:pointer}
.plan-dotbtn:hover{background:var(--field)}
.plan-dot{display:block;width:16px;height:16px;border-radius:50%;background:var(--c);border:2px solid var(--c);box-sizing:border-box}
.plan-mapli.off .plan-dot{background:transparent}
.plan-mapli.off .plan-mapitem{opacity:.55}
.plan-mapitem{display:flex;flex-direction:column;align-items:flex-start;gap:1px;flex:1;min-width:0;text-align:left;padding:6px 8px 6px 2px;border:0;border-radius:10px;background:none;color:var(--text);font:inherit;cursor:pointer;min-height:44px}
.plan-mapitem small{font-size:12px}
.plan-mapitem:hover{background:var(--field)}
.plan-mapitem-t{font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-help{margin:0}
/* plein écran : panneau flottant */
.map-card.fs .pl-side{position:absolute;z-index:1100;top:12px;left:56px;width:min(320px,calc(100% - 120px));max-height:calc(100% - 40px);overflow:hidden;padding:12px;background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(4px)}
.map-card.fs .pl-side .plan-maplist{max-height:calc(100vh - 230px)}
.map-card.fs .pl-side.folded .pl-body{display:none}
.map-card.fs .pl-side .pl-help{display:none}
@media (max-width:960px){
  .pl-shell .ed-main{order:-1}
  .plan-map{height:56vh}
  .plan-maplist{max-height:280px}
  .map-card.fs .plan-map{height:100%}
}

/* v67 : éditeur — barre d'icônes, mode avec icône, tracé glissable, points d'appui */
.ed-btns .hbtn.sm{flex:0 0 auto}
.ed-btns .hbtn:disabled{opacity:.4;cursor:default}
.ed-btns .hbtn:disabled:hover{border-color:var(--field-line);color:var(--text)}
.ed-btns .hbtn::after{top:calc(100% + 6px);right:auto;left:50%;transform:translateX(-50%);z-index:1300}
.ed-sep{width:1px;height:22px;margin:0 3px;background:var(--line)}
.ed-modebox{display:flex;align-items:center;gap:8px}
.ed-modeicons{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--field-line);border-radius:12px;background:var(--field);color:var(--accent)}
.ed-modeicons .ed-modeic[hidden]{display:none}
.ed-modebox select{flex:1;min-width:0}
.ed-wp-aux span{width:10px;height:10px;margin:5px;border-width:1.5px;font-size:0;background:#8A94A6;box-sizing:content-box}
.ed-wptag.a{background:#8A94A6;font-size:0}
.ed-leg-hit{touch-action:none;cursor:grab}
.ed-dragging,.ed-dragging .ed-leg-hit{cursor:grabbing!important}

.ed-tools{display:flex;align-items:center;gap:4px;padding:8px;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:0 4px 16px rgba(0,0,0,.25)}
.ed-tools .hbtn.sm{flex:0 0 auto}
.ed-tools .hbtn:disabled{opacity:.4;cursor:default}
.ed-tools .hbtn:disabled:hover{border-color:var(--field-line);color:var(--text)}
.ed-tools .hbtn::after{top:calc(100% + 6px);right:auto;left:50%;transform:translateX(-50%);z-index:1300}
.ed-impbox{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:10px 12px;border:1px solid var(--field-line);border-radius:12px;background:var(--field)}
.ed-impbox[hidden]{display:none}.ed-impbox small{font-size:12px;line-height:1.35}

.ed-tools .hbtn.sm{width:32px;height:32px}.ed-tools .hbtn.sm .mapbtn-ic{width:19px;height:19px}.ed-tools .ed-sep{margin:0 2px}
@media (min-width:961px){.ed-overlay .ed-stats{gap:14px;padding:8px 12px}}

/* v67 : import façon SmartRoute */
.ed-smart{position:absolute;inset:0;z-index:1250;display:flex;align-items:center;justify-content:center;padding:12px;background:rgba(0,0,0,.4)}
.ed-smart[hidden]{display:none}
.ed-smart-box{width:min(440px,100%);max-height:100%;overflow:auto;display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:16px;background:var(--card);border:1px solid var(--line);box-shadow:0 12px 40px rgba(0,0,0,.4)}
.ed-smart-box h3{margin:0;font-size:18px;text-align:center}
.ed-smart-box [hidden]{display:none!important}
.ed-smart-opts{display:flex;flex-direction:column;gap:6px}
.ed-smart-opt{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 10px;border:1px solid var(--field-line);border-radius:12px;background:var(--field);cursor:pointer}
.ed-smart-opt:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.ed-smart-opt input{accent-color:var(--accent)}
.ed-smart-opt .mapbtn-ic{color:var(--accent);flex:0 0 auto}
.ed-smart-opt span{display:flex;flex-direction:column;line-height:1.2}.ed-smart-opt small{color:var(--muted);font-size:12px}
.ed-smart-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.ed-smart-cmp{display:flex;align-items:center;justify-content:center;gap:12px}
.ed-smart-card{display:flex;flex-direction:column;gap:2px;min-width:128px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--field)}
.ed-smart-card.on{background:var(--card);border-color:var(--accent)}
.ed-smart-card b{font-size:30px;font-variant-numeric:tabular-nums;line-height:1.1}.ed-smart-card small{color:var(--muted)}
.ed-smart-arrow{font-size:22px}
.ed-smart-checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ed-smart-checks li::before{content:"✓";color:var(--ok);font-weight:700;margin-right:10px}
@media (max-width:960px){.ed-tools .hbtn.sm{width:36px;height:36px}}

.ed-newwrap{position:relative;display:inline-block}
.ed-newmenu{position:absolute;z-index:1300;top:calc(100% + 4px);left:0;min-width:220px;display:flex;flex-direction:column;padding:4px;border-radius:12px;background:var(--card);border:1px solid var(--line);box-shadow:0 8px 24px rgba(0,0,0,.3)}
.ed-newmenu[hidden]{display:none}
.ed-newmenu button{text-align:left;min-height:42px;padding:0 12px;border:0;border-radius:8px;background:none;color:var(--text);font:inherit;cursor:pointer}
.ed-newmenu button:hover,.ed-newmenu button:focus-visible{background:var(--field)}

/* passages à pousser / à porter (estimation) */
.ef-title{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;margin-bottom:10px}
.ef-head{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin-bottom:10px}
.ef-modelab{display:flex;align-items:center;gap:8px;font-weight:600}
.ef-mode{min-height:36px;padding:4px 8px;border-radius:10px;border:1px solid var(--field-line);background:var(--field);color:inherit;font:inherit}
.ef-leg{font-size:13px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}
.ef-sw{display:inline-block;width:18px;height:6px;border-radius:3px;vertical-align:middle}
.ef-sw.ef-push{background:#F59E0B}.ef-sw.ef-carry{background:#B42318}
.ef-body{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-start}
.ef-right{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:8px}
.ef-donut[hidden]{display:none}
.ef-sum{font-weight:600}
.ef-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:260px;overflow:auto}
.ef-item{border-left:5px solid #F59E0B;border-radius:6px;background:var(--field)}
.ef-item.ef-carry{border-left-color:#B42318}
.ef-go{all:unset;box-sizing:border-box;display:block;width:100%;padding:8px 10px;cursor:pointer;font-size:14px;line-height:1.35}
.ef-go:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.ef-set{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.ef-set summary{cursor:pointer;font-weight:600;min-height:36px;display:flex;align-items:center}
.ef-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px 18px;margin:10px 0}
.ef-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px}
.ef-in{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.ef-row input[type=number]{width:74px;min-height:36px;padding:4px 8px;border-radius:10px;border:1px solid var(--field-line);background:var(--field);color:inherit;font:inherit;text-align:right}
.ef-row select{min-height:36px;padding:4px 8px;border-radius:10px;border:1px solid var(--field-line);background:var(--field);color:inherit;font:inherit}
.ef-note{margin-top:8px}

/* téléchargement des parcours cochés sur le téléphone */
.dlp{display:flex;flex-direction:column;gap:10px;margin:10px 0}
.dlp-head{display:flex;gap:10px;align-items:center;justify-content:space-between}
.dlp-bar{height:10px;border-radius:6px;background:var(--line);overflow:hidden}
.dlp-bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}
.dlp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:14px;max-height:220px;overflow:auto}
.dlp-list li{padding:6px 10px;border-radius:8px;background:var(--field)}
.lvl-now{float:right;color:var(--accent);font-weight:700}
.lvl-zones{list-style:none;margin:10px 0 6px;padding:0;display:flex;flex-direction:column;gap:6px}
.lvl-zones li{border-left:5px solid var(--zc);padding:4px 0 4px 12px;color:var(--muted);font-size:15px}
.lvl-zones li.on{color:var(--text);font-weight:700}
.lvl-zones .z0{--zc:#F9D3DA}.lvl-zones .z1{--zc:#EE8CA0}.lvl-zones .z2{--zc:#E5446D}.lvl-zones .z3{--zc:#B3243F}
.per-more{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:6px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--field);color:var(--text);font:inherit;font-weight:600;cursor:pointer}
.per-more svg{transition:transform .15s}
.per-more[aria-expanded=true] svg{transform:rotate(180deg)}
.range-form{align-items:center;gap:10px;flex-wrap:wrap}
.range-form input[type=date]{margin-left:4px}

/* ---------- accueil : bloc Semaine / Mois / Année ---------- */
.per-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.per-tabs{display:none}
.per-col{padding:16px 16px 12px;transition:opacity .15s}
.per-col.loading{opacity:.55}
.per-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px}
.per-title{margin:0;font-size:20px;font-weight:700}
.per-count{font-size:13px}
.per-nav{display:flex;gap:6px}
.per-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--field);color:var(--text);font-size:20px;line-height:1;cursor:pointer}
.per-btn:disabled{opacity:.35;cursor:default}
.per-cal{touch-action:pan-y;margin-bottom:10px}
.pc-row{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}
.pc-dow span{font-size:12px;color:var(--muted);padding:2px 0 6px}
.pc-grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:6px}
.pc-cell{--slot:34px;display:grid;grid-template-rows:auto var(--slot);justify-items:center;align-items:center;row-gap:3px;min-height:48px}
.pc-cell b{font-size:12px;font-weight:600;color:var(--muted);width:100%;text-align:center;font-variant-numeric:proportional-nums}
.pd{position:relative;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--fam,#8A94A6);width:calc(var(--k,.5) * 34px);height:calc(var(--k,.5) * 34px);flex:none}
.pd.none{width:6px;height:6px;background:var(--field-line);opacity:.7}
.pd.none.now{width:9px;height:9px;margin:0;opacity:1;box-shadow:none;background:var(--text)}
.pc-cell.today b{color:var(--text)}
.pd.none.fut{opacity:.3}
.pd.now{box-shadow:0 0 0 2px var(--card),0 0 0 3px var(--text)}
.pd-in{display:block;width:52%;height:52%;border-radius:50%;background:var(--fam)}
a.pd:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.py-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 8px}
.py-name{font-size:12px;color:var(--muted);margin-bottom:4px}
.py-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px 3px;align-items:center;justify-items:center}
.py-days .pd{width:calc(var(--k,.5) * 15px);height:calc(var(--k,.5) * 15px)}
.py-days .pd.none{width:3px;height:3px}
.py-days .pd.now{box-shadow:0 0 0 1px var(--card),0 0 0 2px var(--text)}
.py-days .pd.none.now{width:5px;height:5px;margin:-1px;background:var(--text)}
.pd-blank{display:block;width:3px;height:3px}
.per-tot{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:6px 0 14px;text-align:left}
.per-tot b{display:block;font-size:17px}
.per-tot span,.per-vals span{display:block;font-size:11.5px;color:var(--muted)}
.per-sport{display:flex;gap:12px;align-items:center;padding:12px;margin-top:8px;border-radius:14px;background:var(--field);border:1px solid var(--line)}
a.per-sport{text-decoration:none;color:inherit;cursor:pointer;transition:border-color .15s,background .15s}
a.per-sport:hover{border-color:var(--field-line);background:var(--card)}
a.per-sport:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.per-ico{flex:none;width:40px;height:40px;border-radius:50%;background:var(--fam,#8A94A6);color:#fff;display:flex;align-items:center;justify-content:center}
.per-ico svg{width:28px;height:28px}
.per-sb{flex:1;min-width:0}
.per-sn{font-weight:700;font-size:15px}
.per-bar{height:6px;border-radius:3px;background:var(--line);margin:6px 0 8px;overflow:hidden}
.per-bar i{display:block;height:100%;background:var(--fam,#8A94A6);border-radius:3px}
.per-vals{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.per-vals b{font-size:15px}
.per-empty{margin:12px 0 0}
@media (max-width:900px){
  .per-tabs{display:flex;gap:8px;margin-bottom:10px}
  .per-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .per-grid::-webkit-scrollbar{display:none}
  .per-col{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always}
  .pd{width:calc(var(--k,.5) * 32px);height:calc(var(--k,.5) * 32px)}
  .pc-cell{--slot:32px}
}
@media (min-width:900px){.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.load-form{display:flex;flex-direction:column;gap:12px;max-width:520px}
.load-form label{display:flex;flex-direction:column;gap:4px;font-weight:600}
.load-form label.check{flex-direction:row;align-items:center;gap:8px;font-weight:500}
.load-form input[type=number]{max-width:140px}

.per-goals{display:flex;flex-direction:column;gap:8px;margin:2px 0 12px;padding:10px 12px;border-radius:12px;background:var(--field);border:1px solid var(--line)}
.pg-top{display:flex;justify-content:space-between;font-size:13px;gap:8px}
.pg-bar{position:relative;height:7px;border-radius:4px;background:var(--line);margin-top:4px}
.pg-bar i{display:block;height:100%;border-radius:4px;background:var(--accent)}
.pg-bar u{position:absolute;top:-3px;width:2px;height:13px;background:var(--text);opacity:.55;text-decoration:none}
.pg-late .pg-bar i{background:#C25A0F}.pg-ahead .pg-bar i,.pg-done .pg-bar i{background:var(--ok,#1F9D55)}
.pg-sugg{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px}

.coh-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.coh-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 0;border-top:1px solid var(--line)}
.coh-list li form{margin-left:auto}
.coh-list li>.muted{flex:1 1 220px;font-size:13px}

.push-tab{width:100%;border-collapse:collapse;font-size:14px}
.push-tab th,.push-tab td{text-align:left;padding:6px 8px;border-top:1px solid var(--line)}
.push-bar{display:inline-block;width:110px;height:8px;border-radius:4px;background:var(--line);vertical-align:middle;overflow:hidden}
.push-fill{display:block;height:100%;width:0;background:#F59E0B}

.chart-tip{position:absolute;z-index:5;pointer-events:none;min-width:150px;max-width:260px;padding:6px 10px;border-radius:8px;background:rgba(20,24,28,.92);color:#fff;font-size:13px;line-height:1.35;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.chart-tip[hidden]{display:none}
.chart-tip .ct-top{display:flex;justify-content:space-between;gap:14px;font-weight:600;margin-bottom:2px}
/* pages larges (éditeur, carte des parcours) : titre et onglets restent à la même place que sur les autres pages */
main.wide>h1,main.wide>nav.tabs{max-width:1152px;margin-left:max(0px,calc(50% - 576px))}
main.wide>nav.tabs{margin-bottom:16px}

button.ed-tabdot{padding:0;cursor:pointer;min-width:12px}
button.ed-tabdot:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ed-tabdot.off{background:transparent!important;border-width:2px}

.ed-danger{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}

/* v87 : Parcours › Créés en un seul bloc (collections · filtres et vue · sélection) */
.plan-panel{padding:0;overflow:hidden;margin:0 0 14px}
.plan-panel .plan-band{padding:16px 20px}
.plan-panel .plan-band+.plan-band{border-top:1px solid var(--line)}
.plan-panel .plan-cols{margin:0}
.plan-panel .plan-colhead{margin-top:12px}
.plan-colchips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}
.plan-colchips .pill{white-space:nowrap;flex:0 0 auto}
@media (min-width:700px){.plan-colchips{flex-wrap:wrap;overflow:visible}}
.plan-panel form.filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0}
.plan-panel .filters .chips{display:inline-flex;flex-wrap:nowrap;gap:0;margin:0;border:1px solid var(--field-line);border-radius:12px;overflow:hidden;max-width:100%;overflow-x:auto}
.plan-panel .filters .chip span{min-height:38px;border:0;border-radius:0;border-right:1px solid var(--field-line);background:transparent;white-space:nowrap;padding:0 12px}
.plan-panel .filters .chip:last-child span{border-right:0}
.plan-panel .filters .chip input:checked + span{background:var(--accent);color:#1c1c1e}
.plan-panel .filters .toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0 0 0 auto}
.plan-panel .plan-extra{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.plan-panel .plan-more,.plan-panel .plan-actmore{display:none}
.plan-panel .plan-viewbar{margin:12px 0 0}
.plan-panel .plan-viewbar .totals{font-size:15px;color:var(--muted)}.plan-panel .plan-viewbar .totals b{color:var(--text);font-size:20px}
.plan-panel .plan-selband{background:var(--bg)}
.plan-panel .plan-movebar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:0;padding:0;background:transparent;border:0;box-shadow:none;position:static}
.plan-panel .plan-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-left:auto}
.plan-panel .plan-acts .plan-selact{margin:0}
@media (max-width:699px){
  .plan-panel .plan-band{padding:14px 16px}
  .plan-panel .filters .toolbar{margin-left:0;width:100%}
  .plan-panel .filters .toolbar>label:first-child{flex:1 1 140px}
  .plan-panel .plan-more,.plan-panel .plan-actmore{display:inline-flex}
  .plan-panel .plan-extra,.plan-panel .plan-acts{display:none;width:100%}
  .plan-panel .plan-extra.open,.plan-panel .plan-acts.open{display:flex;flex-direction:column;align-items:stretch}
  .plan-panel .plan-acts{margin-left:0}
}
.plan-panel .plan-movebar select{max-width:170px}

.coach-rows{display:flex;flex-wrap:wrap;gap:10px 22px;margin:10px 0}
.coach-item{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px}
.per-sport[hidden],.per-foldbtn[hidden]{display:none}

/* v88 : onglet Poids */
.body-tot{margin:6px 0 14px}
.body-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.body-form{max-width:none}
.body-form select,.body-form input[type=date],.body-form input[type=number]{max-width:200px}
.alert-inline{color:var(--bad)}

/* v89 : photos localisées sur la carte de la fiche */
.pt-photo{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;display:block}
.pt-photo svg{display:block;filter:drop-shadow(0 2px 2px rgba(0,0,0,.45))}
.pt-photo .pin{fill:var(--accent);stroke:#fff;stroke-width:1.8}
.pt-photo .cam{fill:#fff}
.pt-photo .lens{fill:var(--accent);stroke:#fff;stroke-width:.6}
.pt-photo:hover .pin,.pt-photo:focus .pin{fill:#ff8a47}

.brand-name{font-weight:800;letter-spacing:.02em}
@media (max-width:520px){.brand-name{display:none}}

.ico-btn{display:inline-flex;align-items:center;justify-content:center;padding-left:10px;padding-right:10px}
.plan-panel .plan-selband .plan-movebar{flex-wrap:nowrap}
.plan-panel .plan-selband .plan-sel,.plan-panel .plan-selband .plan-selact{flex-wrap:nowrap}
.plan-panel .plan-selband .plan-acts{flex-wrap:nowrap;margin-left:auto}
@media (max-width:1000px){.plan-panel .plan-selband .plan-movebar,.plan-panel .plan-selband .plan-acts{flex-wrap:wrap}}

.pair-box{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.pair-q{width:100%;max-width:520px;padding:9px 12px;border:1px solid var(--field-line);border-radius:12px;background:var(--field);color:var(--text);font:inherit}
.pair-res{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-width:760px}
.pair-res:empty{display:none}
.pair-item{display:block;width:100%;text-align:left;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;cursor:pointer}
.pair-item:hover,.pair-item:focus-visible{background:var(--field)}
.pair-out{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--card);max-width:760px}
.pair-pct{margin:0 0 4px;font-size:18px}.pair-pct b{font-size:26px}
.pair-svg{display:block;width:100%;max-width:340px;height:auto;margin:6px 0;background:var(--field);border-radius:12px}
.pair-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.pair-form .lbl{display:flex;flex-direction:column;gap:4px;flex:1 1 220px}
.pair-form input[type=text]{padding:8px 10px;border:1px solid var(--field-line);border-radius:10px;background:var(--field);color:var(--text);font:inherit}
.chart-block .body-tot{margin-top:10px}

.ed-vals{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0;display:flex;flex-direction:column;gap:8px}
.ed-vals legend{padding:0 6px;font-weight:600}
.ed-vgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.ed-vgrid .lbl{display:flex;flex-direction:column;gap:4px}
.ed-vgrid input{padding:7px 9px;border:1px solid var(--field-line);border-radius:10px;background:var(--field);color:var(--text);font:inherit}
.ed-changed input{border-color:var(--accent)}

/* v91 : graphes de la fiche un peu moins hauts (carte + courbes visibles ensemble) ; plein écran : masquer le graphique */
.charts-card .chart-box{height:170px}
.charts-card .chart-block + .chart-block{margin-top:12px}
.chart-box .ep-host{height:100%}
.fs-chartbar .fs-toggle{margin-left:auto}
.fs-charts.fs-collapsed .chart-block{display:none!important}
.chart-stat{color:var(--muted)}

.ph-pop{padding:0;border:0;background:transparent;max-width:94vw;max-height:94vh;overflow:visible}
.ph-pop::backdrop{background:rgba(0,0,0,.45)}
.ph-pop img{display:block;max-width:94vw;max-height:90vh;border-radius:10px;box-shadow:0 8px 40px rgba(0,0,0,.5);cursor:pointer}

/* v92 : page Poids façon Withings */
.pw-root{padding-bottom:18px}
.pw-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;background:var(--bg);border-radius:999px;padding:4px;width:fit-content;max-width:100%}
.pw-tab{border:0;background:none;color:var(--muted);font:inherit;font-weight:600;padding:8px 14px;border-radius:999px;cursor:pointer;min-height:36px}
.pw-tab.on{background:var(--accent);color:#fff}
.pw-date{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 0 10px}
.pw-date b{text-align:center;flex:1}
.pw-arrow{border:0;background:none;color:var(--text);font-size:26px;line-height:1;width:44px;height:44px;border-radius:50%;cursor:pointer}
.pw-arrow:disabled{opacity:.25;cursor:default}
.pw-big{margin:4px 0 2px}.pw-bigv{font-size:44px;font-weight:800;letter-spacing:-.02em}.pw-unit{font-size:20px;font-weight:700}
.pw-badge{display:inline-flex;align-items:center;gap:2px;font-size:13px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--bg);color:var(--muted)}
.pw-badge.dn{color:#4C7DF0}.pw-badge.up{color:#E5446D}
.pw-sub{margin-bottom:8px}
.pw-chart{position:relative;height:210px;margin:6px 0}.pw-chart.sm{height:130px}
.pw-goal{font-size:12.5px;color:var(--muted);margin:2px 0 14px}
.pw-card{background:var(--bg);border-radius:14px;padding:14px;margin:12px 0}
.pw-complab{position:relative;height:20px;font-size:14px;font-weight:600;margin:10px 0 8px}.pw-cl{position:absolute;top:0;white-space:nowrap}
.c-m{color:#3FB596}.c-f{color:#9A74D1}.c-o{color:var(--muted)}.c-l{color:#2B98A0}.c-w{color:#4C7DF0}
.pw-compbar{display:flex;gap:4px;height:22px}
.pw-compbar .seg{display:block;border-radius:6px;min-width:6px}
.pw-compbar .seg.c-m{background:#7FD6C0}.pw-compbar .seg.c-f{background:#B79BE0}.pw-compbar .seg.c-o{background:#9AA3AF}
.pw-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px}
.pw-mini{background:var(--bg);border-radius:14px;padding:12px}
.pw-minit{font-weight:700;font-size:13px;margin-bottom:6px}.pw-minival{font-size:20px;font-weight:700;margin-top:6px}
.pw-bio{list-style:none;margin:6px 0 0;padding:0}
.pw-bio li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.pw-bio li:first-child{border-top:0}
.pw-bio li div:first-child{display:flex;flex-direction:column;gap:2px}
.pw-bio .muted{font-size:12.5px}
.pw-bioval{font-weight:700;font-size:17px;text-align:right}
.pw-lvl{grid-column:1/-1;display:flex;gap:4px;justify-content:flex-end}
.pw-lvl i{display:block;width:56px;height:8px;border-radius:5px;background:var(--line)}
.pw-lvl i.on.l0{background:#4C7DF0}.pw-lvl i.on.l1{background:#3FB56D}.pw-lvl i.on.l2{background:#F2B33D}
.pw-metric{margin:10px 0 4px}
.pw-mh{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}
.pw-mh .muted{font-size:12.5px}.pw-unit-r{margin-left:auto;color:var(--muted);font-size:13px;font-weight:600}
.pw-empty{padding:20px 0}
@media (max-width:560px){.pw-bigv{font-size:38px}.pw-chart{height:190px}.pw-complab{font-size:13px}}
.pw-note{margin-top:8px}
/* v93 : onglet Santé */
.pw-card .pw-big{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.pw-track{height:10px;border-radius:6px;background:var(--line);overflow:hidden;margin-top:10px}
.pw-fill{display:block;height:100%;border-radius:6px}.pw-fill.sleep{background:#8E7CF0}
.pw-trackl{margin-top:6px;font-size:.85rem}
.pw-score{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.pw-bigv.sleep{color:#8E7CF0}
.pw-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:12px 0}
.pw-tile{background:var(--card-2,var(--bg));border-radius:12px;padding:12px 14px}
.pw-tilev{font-size:1.5rem;font-weight:700}
.pw-evo{margin:18px 0 4px}
@media(min-width:720px){.pw-tiles{grid-template-columns:repeat(4,1fr)}}
.ep-tags{opacity:.8;font-size:.85em;margin-top:2px}

/* ---- Suivi › Récap (v106) ---- */
.rc-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px 28px;padding:24px 26px;margin:0 0 16px;position:relative;overflow:hidden}
.rc-hero::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--accent)}
.rc-hero.st-fresh::before,.rc-hero.st-ok::before{background:var(--ok)}.rc-hero.st-warn::before{background:#c77700}.rc-hero.st-bad::before{background:var(--bad)}
.rc-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.rc-title{margin:4px 0 6px;font-size:30px;line-height:1.15;letter-spacing:-.01em}
.rc-lead{margin:0 0 10px;color:var(--muted);max-width:60ch}.rc-lead b{color:var(--text)}
.rc-att{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}
.rc-att li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.4}
.rc-att-dot{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;color:#fff;background:var(--muted)}
.rc-att .warn .rc-att-dot{background:#c77700}.rc-att .bad .rc-att-dot{background:var(--bad)}.rc-att .info .rc-att-dot{background:#3b7dd8}
.rc-heads{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;align-content:center}
.rc-heads>div{padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--text) 5%,var(--card));border:1px solid var(--line);display:flex;flex-direction:column;gap:1px}
.rc-heads dt{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.rc-heads dd{margin:0;font-size:30px;font-weight:800;line-height:1.1}
.rc-heads dd.st-fresh,.rc-heads dd.st-ok{color:var(--ok)}.rc-heads dd.st-warn{color:#c77700}.rc-heads dd.st-bad{color:var(--bad)}
.rc-heads small{font-size:12px;color:var(--muted)}.rc-heads .u,.rc-row3 .u{font-size:13px;font-weight:600;color:var(--muted)}
.rc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px;margin:0 0 14px}
.rc-card{display:flex;flex-direction:column;gap:10px;padding:18px 20px}
.rc-card header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rc-card h3{margin:0;font-size:17px}
.rc-tag{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:700;background:color-mix(in srgb,var(--muted) 16%,var(--card));color:var(--text)}
.rc-tag.ok{background:color-mix(in srgb,var(--ok) 18%,var(--card));color:var(--ok)}.rc-tag.warn{background:color-mix(in srgb,#F2B705 22%,var(--card));color:#8a5600}.rc-tag.bad{background:color-mix(in srgb,var(--bad) 18%,var(--card));color:var(--bad)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .rc-tag.warn{color:#ffcf5c}}
:root[data-theme="dark"] .rc-tag.warn{color:#ffcf5c}
.rc-row3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rc-row3>div{display:flex;flex-direction:column;min-width:0}
.rc-k{font-size:12px;font-weight:600;color:var(--muted)}
.rc-row3 b{font-size:28px;font-weight:800;line-height:1.15;white-space:nowrap}
.rc-row3 b.warn{color:#c77700}.rc-row3 b.bad{color:var(--bad)}
.rc-row3 small{font-size:12px;color:var(--muted)}
.rc-note,.rc-ref{margin:0;font-size:13px;line-height:1.45}.rc-note{color:var(--text)}.rc-ref{color:var(--muted)}
.spk{width:100%;height:54px;display:block;overflow:visible}
.spk-line{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.spk-dot{fill:var(--accent)}.spk-band{fill:color-mix(in srgb,var(--ok) 20%,transparent)}
.gauge{width:100%;max-width:340px;height:22px;display:block}
.g-track{fill:color-mix(in srgb,var(--muted) 24%,var(--card))}.g-zone{fill:color-mix(in srgb,var(--ok) 55%,var(--card))}
.g-mark{stroke:var(--card);stroke-width:2.5}.g-mark.in{fill:var(--ok)}.g-mark.out{fill:#c77700}
.pbar{width:100%;height:10px;display:block}
.pb-track{fill:color-mix(in srgb,var(--muted) 22%,var(--card))}.pb-fill{fill:var(--accent)}.pb-pace{fill:var(--text);opacity:.55}
.pbar.done .pb-fill,.pbar.ahead .pb-fill{fill:var(--ok)}.pbar.late .pb-fill{fill:#c77700}
.rc-prog{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-size:12px;color:var(--muted)}
.wbars{width:100%;height:60px;display:block}
.wb{fill:color-mix(in srgb,var(--accent) 45%,var(--card))}.wb.hit{fill:var(--ok)}.wb.now{fill:var(--accent)}.wb.now.hit{fill:var(--ok)}
.wb-ref{stroke:var(--text);stroke-width:1;stroke-dasharray:3 3;opacity:.5;vector-effect:non-scaling-stroke}
.rc-vo2-top{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:flex-end}
.rc-vo2-big{display:flex;align-items:baseline;gap:8px}.rc-vo2-big b{font-size:54px;line-height:1;font-weight:800;letter-spacing:-.02em;color:var(--accent-text)}.rc-vo2-big span{color:var(--muted);font-weight:600}
.rc-vo2-side{display:flex;flex-direction:column;gap:2px;font-size:14px;color:var(--muted)}.rc-vo2-side b{color:var(--text)}
.rc-evo{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;align-items:end}
.rc-evo-c{display:flex;flex-direction:column;align-items:center;gap:2px}
.rc-evo-v{font-size:12px;font-weight:700}.rc-evo-l{font-size:11px;color:var(--muted)}
.rc-evo-bar{width:100%;max-width:34px;height:60px}.rc-evo-bar rect{fill:var(--accent)}.rc-evo-bar rect.none{fill:color-mix(in srgb,var(--muted) 30%,var(--card))}
.rc-goal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.rc-goal-h{display:flex;justify-content:space-between;gap:10px;margin-bottom:4px;font-size:14px;font-weight:600}
.rc-goal-h b.done,.rc-goal-h b.ahead{color:var(--ok)}.rc-goal-h b.late{color:#c77700}
.rc-foot{font-size:12px;margin:0 0 20px}
@media (max-width:760px){.rc-hero{grid-template-columns:1fr;padding:20px}.rc-title{font-size:25px}.rc-heads dd{font-size:26px}.rc-row3 b{font-size:24px}.rc-vo2-big b{font-size:46px}}

/* ---- Récap v107 : jauges en arc par zones, courbe de fraîcheur par zones ---- */
:root{--zr:#e0453a;--zo:#f08a24;--zy:#f2c230;--zl:#8cc63f;--zg:#3fae6a;--zt:#2ba7a0;--zb:#3b8fd8;--zi:#7a63e0}
.zs-red{stroke:var(--zr)}.zs-orange{stroke:var(--zo)}.zs-yellow{stroke:var(--zy)}.zs-lime{stroke:var(--zl)}.zs-green{stroke:var(--zg)}.zs-teal{stroke:var(--zt)}.zs-blue{stroke:var(--zb)}.zs-indigo{stroke:var(--zi)}.zs-neutral{stroke:var(--muted)}
.zf-red{fill:var(--zr)}.zf-orange{fill:var(--zo)}.zf-yellow{fill:var(--zy)}.zf-lime{fill:var(--zl)}.zf-green{fill:var(--zg)}.zf-teal{fill:var(--zt)}.zf-blue{fill:var(--zb)}.zf-indigo{fill:var(--zi)}.zf-neutral{fill:var(--muted)}
.zb-red{fill:var(--zr)}.zb-orange{fill:var(--zo)}.zb-yellow{fill:var(--zy)}.zb-lime{fill:var(--zl)}.zb-green{fill:var(--zg)}.zb-teal{fill:var(--zt)}.zb-blue{fill:var(--zb)}.zb-indigo{fill:var(--zi)}
.zc-red{background:var(--zr)}.zc-orange{background:var(--zo)}.zc-yellow{background:var(--zy);color:#3a2d00!important}.zc-lime{background:var(--zl);color:#1f3300!important}.zc-green{background:var(--zg)}.zc-teal{background:var(--zt)}.zc-blue{background:var(--zb)}.zc-indigo{background:var(--zi)}.zc-neutral{background:var(--muted)}
.rc-gbox{display:grid;grid-template-columns:150px minmax(0,1fr);gap:6px 14px;align-items:center}
.rc-arc{display:flex;flex-direction:column;align-items:center;gap:2px}
.arc{width:150px;height:auto;display:block;overflow:visible}
.arc-z{fill:none;stroke-width:9;stroke-linecap:butt}
.arc-mark{stroke:var(--card);stroke-width:3}
.arc-tick{fill:var(--card)}
.arc-tl{font-size:9px;font-weight:600;fill:var(--muted);text-anchor:middle}
.arc-v{font-size:25px;font-weight:800;fill:var(--text);text-anchor:middle}
.arc-u{font-size:9.5px;font-weight:600;fill:var(--muted);text-anchor:middle}
.rc-zone{display:inline-flex;align-items:center;min-height:22px;padding:0 10px;border-radius:999px;color:#fff;font-size:12px;font-weight:700;margin-top:-6px}
.rc-side{margin:0;display:flex;flex-direction:column;gap:9px}
.rc-side>div{display:flex;flex-direction:column;gap:0}
.rc-side dt{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.rc-side dd{margin:0;font-size:18px;font-weight:800;line-height:1.2}.rc-side dd.warn{color:#c77700}.rc-side dd.sm{font-size:13px;font-weight:700}
.rc-cap{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:-4px}
.bands{width:100%;height:auto;display:block;border-radius:10px;overflow:hidden}
.bd{opacity:.20}
.bd-l{font-size:9px;font-weight:700;fill:var(--text);opacity:.6;text-anchor:end}
.bd-line{fill:none;stroke:var(--text);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.spk{width:100%;height:auto;display:block;overflow:visible}
.spk-line{vector-effect:none;stroke-width:2.2}
.spk-lbl{font-size:12px;font-weight:800;fill:var(--text)}
.wb-lbl{font-size:9px;font-weight:700;fill:var(--muted);text-anchor:end}
.wbars{height:auto}
@media (max-width:420px){.rc-gbox{grid-template-columns:130px minmax(0,1fr)}.arc{width:130px}}

/* ---- v108 : VO2max (historique mensuel, détail, case test) ---- */
.rc-evo-bar{max-width:40px;height:74px}
.rc-evo-bar .none{fill:color-mix(in srgb,var(--muted) 30%,var(--card))}
.rc-evo-bar rect.few{stroke:var(--accent);stroke-width:1.2}
.hat-bg{fill:color-mix(in srgb,var(--accent) 14%,var(--card))}.hat-ln{fill:var(--accent)}
.evo-dot{fill:var(--card);stroke:var(--text);stroke-width:2.5}
.rc-warn{margin:0;font-size:13px;font-weight:600;color:#c77700}
.rc-linkrow{margin:0;font-size:14px}
.vo2t .r{text-align:right;white-space:nowrap}.vo2t tr.vt-ko td{color:var(--muted)}.vo2t tr.vt-ok td:nth-last-child(2){color:var(--ok);font-weight:700}

/* v110 */
.rc-side.air{gap:20px;justify-content:center}

/* ---- v111 : libellés de jauge écartés du tracé, grand nombre réduit, bande de sommeil limitée ---- */
.arc-tl.end{text-anchor:end}.arc-tl.start{text-anchor:start}.arc-tl.middle{text-anchor:middle}
.arc-v.sm{font-size:19px}

/* ---- v112 : IMC en demi-cercle, Sommeil | Pas côte à côte ---- */
.pw-top{display:flex;align-items:center;justify-content:space-between;gap:14px}
.pw-arc{width:124px;height:auto;flex:none;display:block}
.pw-az{fill:none;stroke-width:12;stroke-linecap:butt}
.pw-am{stroke:var(--card);stroke-width:3}
.pw-duo{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pw-duo>.pw-card{margin:12px 0}
.pw-fill.steps{background:#F0A93B}
@media (max-width:560px){.pw-duo{gap:8px}.pw-duo .pw-bigv{font-size:30px}.pw-arc{width:104px}}

/* v113 — zoom sur un tronçon (courbes + carte) */
.chart-box canvas{touch-action:pan-y;-webkit-user-select:none;user-select:none}
.stats-card.fz-on{outline:2px solid var(--accent);outline-offset:-2px}
.fz-note{margin:12px 0 0;font-size:13px;color:var(--muted)}
.fz-note[hidden]{display:none}
.fz-reset{margin-left:8px;padding:2px 10px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--accent);font:inherit;cursor:pointer}
.fstats .fz-na b{opacity:.35}
.fstats [data-k=move] span{white-space:nowrap}
.chart-block.rz-on{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}
.rz-bar{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:28px;margin:0 0 6px}
.rz-chip,.rz-badge{display:inline-flex;align-items:center;gap:10px;border:0;border-radius:999px;background:var(--accent);color:#1c1c1e;font:600 13px/1 system-ui,-apple-system,"Segoe UI",sans-serif;padding:7px 12px;cursor:pointer;min-height:32px}
.rz-chip[hidden],.rz-badge[hidden]{display:none}
.rz-back{font-weight:700;white-space:nowrap}
.rz-badge{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:1000;box-shadow:0 2px 8px rgba(0,0,0,.35);max-width:calc(100% - 100px)}
.rz-badge.rz-bottom{top:auto;bottom:30px}
.rz-chip:focus-visible,.rz-badge:focus-visible{outline:3px solid var(--text);outline-offset:2px}
.rz-tip{background:var(--card);color:var(--text);border:1px solid var(--line);font-weight:600;font-size:12px;padding:2px 7px}
.rz-tip::before{display:none}
.ep-sel{position:absolute;background:rgba(120,130,150,.28);border-left:1px solid rgba(120,130,150,.8);border-right:1px solid rgba(120,130,150,.8);pointer-events:none;z-index:1}
.ep-sel[hidden]{display:none}
.ep-zoombar{position:absolute;top:2px;right:8px;z-index:2;display:flex;align-items:center;gap:8px;pointer-events:none}
.ep-zoombar .rz-chip{pointer-events:auto}
@media (max-width:760px){.rz-badge{max-width:calc(100% - 70px);font-size:12px;padding:6px 10px}}

/* v114 — IMC : valeur au centre du demi-cercle, légende dessous, bloc centré à droite de la pesée */
.pw-top{align-items:center;gap:16px}
.pw-bmi{flex:none;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 6px 0 0}
.pw-bmi .pw-arc{width:132px}
.pw-arcv{font-size:21px;font-weight:800;fill:var(--text);letter-spacing:-.01em}
.pw-bmicap{display:flex;gap:6px;align-items:baseline;font-size:13px;color:var(--muted)}
.pw-bmicap b{color:var(--text);font-weight:700}
@media (max-width:560px){.pw-bmi .pw-arc{width:112px}.pw-arcv{font-size:20px}}

/* v116 — famille Raquette violette, famille Indoor rouge (icône rameur) ; seul Disc Golf garde une couleur propre (doublon de TYPE_COLORS dans bootstrap.php) */
.t-66{--fam:#EC4899}
.rz-bar[hidden]{display:none}

/* v117 — pictogrammes en planche SVG (traits blancs partout) ; tailles revues pour les tracés plus détaillés */

/* ---- v122 : récupération (page Santé : verdict, cartes, grille nuit par nuit, graphiques, étiquettes) ---- */
:root{--rc-g:#2FA36B;--rc-o:#F0A93B;--rc-r:#E5484D;--rc-n:#8A94A6}
.pw-badge.pos{color:var(--rc-g)}.pw-badge.neg{color:#C77700}
.rc-testbar{margin:0 0 12px;padding:10px 14px;border:1px dashed var(--rc-o);border-radius:12px;background:color-mix(in srgb,var(--rc-o) 14%,var(--card));font-size:14px}
.rc-testbar a{text-decoration:underline}
.rc-head{border-left:6px solid var(--rc-n)}
.rc-head.v-g{border-left-color:var(--rc-g)}.rc-head.v-o{border-left-color:var(--rc-o)}.rc-head.v-r{border-left-color:var(--rc-r)}
.rc-vline{display:flex;gap:12px;align-items:flex-start}
.rc-vdot{flex:none;width:14px;height:14px;margin-top:6px;border-radius:50%;background:var(--rc-n)}
.v-g .rc-vdot{background:var(--rc-g)}.v-o .rc-vdot{background:var(--rc-o)}.v-r .rc-vdot{background:var(--rc-r)}
.rc-vtext{display:block;font-size:18px;line-height:1.35}
.rc-vextra{display:block;margin-top:2px;font-size:14px;color:var(--muted)}
.rc-vnight{display:block;margin-top:4px;color:var(--muted)}.rc-vnight a{text-decoration:underline}
.rc-ask{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:14px}
.rc-tagline{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:12px 0 0;font-size:14px;color:var(--muted)}
.rc-pills{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.rc-pill{display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:0 10px;border:1px solid var(--field-line);border-radius:999px;background:var(--card);color:var(--text);font:inherit;font-size:13px;cursor:pointer}
.rc-pill.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--card));font-weight:700}
.rc-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin:0 0 16px}
.rn-card{position:relative;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:var(--shadow)}
.rn-card.c-g{border-top:5px solid var(--rc-g)}.rn-card.c-o{border-top:5px solid var(--rc-o)}.rn-card.c-r{border-top:5px solid var(--rc-r)}
.rn-card header{display:flex;justify-content:space-between;align-items:center;gap:8px}
.rn-card h3{margin:0;font-size:14px;font-weight:700;color:var(--muted)}
.rc-val{display:flex;align-items:baseline;gap:6px;margin-top:6px}.rc-val b{font-size:30px;line-height:1.1}.rc-u{color:var(--muted);font-size:14px}
.rc-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--rc-n);align-self:center}
.c-g .rc-dot{background:var(--rc-g)}.c-o .rc-dot{background:var(--rc-o)}.c-r .rc-dot{background:var(--rc-r)}
.rn-ref{margin-top:4px;font-size:13px;color:var(--muted)}
.rc-sub{margin-top:4px;font-size:13px}
.rc-phr{margin:8px 0 0;font-size:14px;line-height:1.4}
.rc-i{position:relative}
.rc-i summary{list-style:none;cursor:pointer;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:var(--muted);font-size:18px;line-height:1}
.rc-i summary::-webkit-details-marker{display:none}
.rc-i summary:hover,.rc-i[open] summary{color:var(--text);background:color-mix(in srgb,var(--muted) 16%,var(--card))}
.rc-ibody{margin:8px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--field);font-size:13px;line-height:1.45}
.rc-ibody p{margin:6px 0 0}
.rn-card .rc-i[open]{flex-basis:100%}.rn-card header:has(.rc-i[open]){flex-wrap:wrap}
.rc-gridwrap{overflow-x:auto;margin:10px -4px 0;padding:0 4px}
.rc-nights{border-collapse:separate;border-spacing:3px;width:100%;min-width:760px;font-size:13px;text-align:center}
.rc-nights th{font-weight:600;color:var(--muted);padding:2px 4px;white-space:nowrap}
.rc-nights thead th a{display:block;text-decoration:underline;text-underline-offset:3px;color:var(--text)}
.rc-nights tbody th{text-align:left;position:sticky;left:0;background:var(--card);z-index:1;padding-right:8px}
.rc-nights td{padding:7px 4px;border-radius:8px;background:color-mix(in srgb,var(--rc-n) 10%,var(--card));font-weight:600}
.rc-nights td.g-g{background:color-mix(in srgb,var(--rc-g) 24%,var(--card))}.rc-nights td.g-o{background:color-mix(in srgb,var(--rc-o) 30%,var(--card))}.rc-nights td.g-r{background:color-mix(in srgb,var(--rc-r) 28%,var(--card))}
.rc-nights .pick{outline:2px solid var(--accent);outline-offset:-2px}
.rc-gtags{display:block;min-height:18px;font-size:13px}
.rc-gnote{margin-top:10px;font-size:13px}
.rc-chead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px}
.rc-chart{margin-top:14px}.rc-chart h3{margin:0 0 6px;font-size:14px;color:var(--muted)}
.rc-cv{position:relative;height:210px}
.rc-nightbox .rc-tagform{display:flex;flex-direction:column;gap:12px;margin-top:12px;align-items:flex-start}
.rc-checks{display:flex;flex-wrap:wrap;gap:8px 14px}
.rc-check{display:inline-flex;align-items:center;gap:6px;font-size:14px}.rc-check input{width:18px;height:18px}
.rn-note{align-self:stretch;max-width:520px}
/* v136 : bloc « nuit » (sommeil, qualité, quatre tuiles, pas) et jauges */
.nb{padding:18px 18px 20px}
.nb-head{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;text-align:center}
.nb-title{margin:0;font-size:20px;line-height:1.25}
.nb-sub{display:block;margin-top:2px;font-size:13px;color:var(--muted)}
.nb-arrow{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--field-line);border-radius:50%;background:var(--card);color:var(--text);font-size:26px;line-height:1;text-decoration:none}
.nb-arrow:hover{border-color:var(--accent)}.nb-arrow.off{opacity:.3;pointer-events:none}
.nb-top{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:12px;margin-top:16px}
.nb-sleep,.nb-qual{padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--field)}
.nb-sleep header{display:flex;justify-content:space-between;align-items:center;gap:8px}
.nb-sleep h3,.nb-qual h3,.nb-tile h3{margin:0;font-size:14px;font-weight:700;color:var(--muted)}
.nb-sleep .rc-val{margin-top:4px}.nb-big{font-size:40px;line-height:1.05}
.nb-qual h3{margin-bottom:8px}
.nb-qrow{display:flex;align-items:center;gap:14px}.nb-qrow b{display:block;font-size:17px}.nb-qrow p{font-size:13px;line-height:1.4;color:var(--muted)}
.nb-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:12px}
.nb-tile{position:relative;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--field)}
.nb-tile header{display:flex;justify-content:space-between;align-items:center;gap:8px}.nb-tile header:has(.rc-i[open]){flex-wrap:wrap}.nb-tile .rc-i[open]{flex-basis:100%}
.nb-tile .rc-val b{font-size:28px}
.nb-tile .rn-ref{min-height:2.6em}
.nb-steps{margin-top:12px;padding:12px 16px;border:1px solid var(--line);border-radius:16px;background:var(--field)}
.nb-srow{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:8px}.nb-srow b{font-size:22px}
.nb-steps small{display:block;margin-top:6px;font-size:12px}
.rc-gauge{display:block;width:100%;height:16px;margin-top:8px}
.rc-gz{fill:var(--rc-n);opacity:.35}.rc-gz-g{fill:var(--rc-g)}.rc-gz-o{fill:var(--rc-o)}.rc-gz-r{fill:var(--rc-r)}.rc-gz-n{fill:var(--rc-n)}.rc-gz-p{fill:#F0A93B}
.rc-gz.rc-gz-g,.rc-gz.rc-gz-o,.rc-gz.rc-gz-r{opacity:.38}
.rc-gm{fill:var(--text);stroke:var(--card);stroke-width:.8}
.rc-gt{fill:var(--muted)}
.rc-pbar{display:block;width:100%;height:8px}.rc-pb0{fill:var(--line)}.rc-pb1{opacity:1}
.rc-ring{flex:none;width:76px;height:76px}.rc-rg0,.rc-rg1{fill:none;stroke-width:3.4}.rc-rg0{stroke:var(--line)}.rc-rg1{stroke-linecap:round;stroke:var(--rc-n)}
.rc-gs-g{stroke:var(--rc-g)}.rc-gs-o{stroke:var(--rc-o)}.rc-gs-r{stroke:var(--rc-r)}
.rc-rgt{fill:var(--text);font-size:8.5px;font-weight:700}
.nb-sleep.c-g,.nb-qual.c-g,.nb-tile.c-g{border-top:4px solid var(--rc-g)}.nb-sleep.c-o,.nb-qual.c-o,.nb-tile.c-o{border-top:4px solid var(--rc-o)}.nb-sleep.c-r,.nb-qual.c-r,.nb-tile.c-r{border-top:4px solid var(--rc-r)}
.rc-gwd{display:block;font-weight:400;font-size:11px}
.rc-nights thead th.pick a{font-weight:800}
@media (max-width:600px){.nb{padding:14px 12px 16px}.nb-top{grid-template-columns:1fr}.nb-title{font-size:18px}.nb-big{font-size:34px}.nb-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.nb-tile .rc-val b{font-size:24px}}
.rc-trend{margin:10px 0 0 26px;font-size:14px;color:var(--muted);line-height:1.45}
.rc-bilan{margin:12px 0 0;font-size:14px;line-height:1.5}.rc-bilan:empty{display:none}
.rc-rec .rc-pill{min-height:30px;font-size:12px;padding:0 8px}
@media (max-width:520px){.rc-val b{font-size:26px}.rc-cv{height:190px}}
/* v122 : carte Récupération du Récap */
.rc-dot-g{background:var(--rc-g)!important}.rc-dot-o{background:var(--rc-o)!important}.rc-dot-r{background:var(--rc-r)!important}.rc-dot-n{background:var(--rc-n)!important}
.rc-rec header{display:flex;justify-content:space-between;align-items:center}
.rc-rec .rc-vtext{margin:8px 0 2px;font-size:16px;font-weight:700;line-height:1.35}
.rc-rec .rc-vextra{margin:2px 0;font-size:13px;color:var(--muted)}
.rc-3v{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.rc-3v li{display:grid;grid-template-columns:14px 78px 1fr;gap:2px 8px;align-items:center;font-size:14px}
.rc-3v li small{grid-column:3}
.rc-rec .rc-ask{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:12px}
.rc-more{margin:12px 0 0;font-size:14px}.rc-more a{text-decoration:underline}
.rc-head{margin-bottom:12px}

/* v125 : mode hors connexion */
body.auth.off{place-items:start center}
.auth.off main{max-width:560px;margin:8px auto;padding:22px 18px}
.off-state{margin:6px 0 4px;font-weight:700}
.off-state.on{color:var(--accent-text)}
.off-lead{margin:6px 0 14px}
.off-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 18px}
.off-actions .pill{min-height:44px;display:inline-flex;align-items:center}
.off-foot{margin:12px 0 0}
#off-routes .h2{margin-top:6px}
.off-bar{position:fixed;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:9999;display:flex;align-items:center;gap:12px;padding:10px 12px 10px 14px;border-radius:12px;background:#1c1c1e;color:#fff;box-shadow:0 4px 16px rgba(0,0,0,.35);font-size:14px}
.off-bar span{font-weight:700;white-space:nowrap}
.off-bar a{color:#fff;font-weight:700;text-decoration:underline;flex:1 1 auto;min-width:0}
.off-bar .off-x{flex:none;min-width:36px;min-height:36px;border:0;border-radius:8px;background:transparent;color:#fff;font-size:22px;line-height:1;cursor:pointer}

/* v126 : synchronisation Shimano (Mon compte) et fiche VTT électrique (batterie, cadence, modes d'assistance) */
.shim-tok{display:block;word-break:break-all;padding:10px 12px;border-radius:8px;background:var(--card2,rgba(120,128,140,.14));font-size:14px;user-select:all}
.shim-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:8px;font-size:14px}
.shim-list li{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between}
.shim-new{display:grid;gap:8px;margin-top:10px}
.sm0{fill:#9aa3b2;background:#9aa3b2}.sm1{fill:#4ac26b;background:#4ac26b}.sm2{fill:#3D8BFD;background:#3D8BFD}.sm3{fill:#E5484D;background:#E5484D}.sm4{fill:#F2B705;background:#F2B705}.sm9{fill:#6b7280;background:#6b7280}
.chart-box.rib{height:64px}

/* v129 : courbes repliables, courbes secondaires plus basses, flèche à côté du titre */
.chart-fold{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;margin:-6px 4px -6px -6px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;flex:none}
.chart-fold:hover,.chart-fold:focus-visible{background:var(--line);color:var(--text)}
.chart-fold::before{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-1px,-1px);transition:transform .15s}
.chart-fold[aria-expanded="false"]::before{transform:rotate(-45deg)}
.chart-head{align-items:center}
.chart-head b{display:inline-flex;align-items:center}
.chart-block.folded .chart-box{display:none}
.chart-block.folded .chart-head{margin-bottom:0}
.charts-card .chart-box.sm{height:112px}
.charts-card .chart-box.rib{height:46px}
