*{box-sizing:border-box}
[hidden]{display:none!important}
:root{--c:#0d7a5f;--accent:#24312b;--bg:#eef3f0;--card:#fff;--ink:#17201c;--head:var(--c);--r:14px;--logo-h:56px;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--muted:color-mix(in srgb,var(--ink) 58%,transparent);--line:color-mix(in srgb,var(--ink) 12%,transparent);--soft:color-mix(in srgb,var(--ink) 4%,var(--card));--ok:#1f8a4c;--err:#c0392b;--warn:#b7791f}
html{-webkit-text-size-adjust:100%}
html.ad-lock,html.ad-lock body{overflow:hidden}
body{margin:0;font:16px/1.5 var(--font);color:var(--ink);background:var(--bg) center/cover fixed no-repeat;min-height:100vh}
a{color:var(--c)}
.wrap{max-width:560px;margin:0 auto;padding:0 16px 32px}
/* en-tête */
.top{margin:0 0 16px}
.top-in{max-width:560px;margin:0 auto;padding:16px 16px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}
.logo-center .top-in{flex-direction:column;justify-content:center}
.logo-center .brand{justify-content:center;text-align:center}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.logo{max-height:var(--logo-h);max-width:70vw;display:block;object-fit:contain}
.logo-txt{font-weight:800;font-size:20px;color:var(--c);line-height:1.2}
.top-band{background:var(--head);padding-bottom:14px}
.top-band .logo-txt{color:#fff}
.top-hero{background:var(--head);padding:10px 0 46px;margin-bottom:-30px}
.top-hero .logo-txt{color:#fff;font-size:24px}
.has-bg .top-plain .logo-txt,.has-bg .foot,.has-bg .foot a{color:#fff}
.langs select{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:6px 8px;font:inherit;font-size:14px}
.logo-center .langs{position:absolute;top:12px;right:12px}
.logo-center .top-in{position:relative}
.card{background:var(--card);border-radius:calc(var(--r) + 2px);padding:22px 18px;box-shadow:0 6px 24px rgba(0,0,0,.08);position:relative}
.title{font-size:24px;line-height:1.2;margin:0 0 8px}
.sub{font-size:17px;margin:20px 0 8px}
.lead{color:var(--muted);margin:0 0 16px}
.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}.mono{font-family:ui-monospace,Menlo,Consolas,monospace}
.note{background:#fff8e6;border:1px solid #f3dfa6;color:#6b5312;border-radius:10px;padding:10px 12px;font-size:14px;margin:0 0 14px}
.alert{border-radius:10px;padding:11px 14px;margin:0 0 12px;font-size:15px;background:#fff;color:#17201c;border-left:4px solid var(--c)}
.alert-error{border-color:var(--err);background:#fdf0ee}.alert-success{border-color:var(--ok);background:#ecf8f0}.alert-info{border-color:#2d6cdf;background:#eef4ff}.alert-warning{border-color:var(--warn);background:#fff8e6}
.tabs{display:flex;gap:6px;overflow-x:auto;margin:6px -4px 16px;padding:0 4px 2px}
.tabs button{flex:1 0 auto;border:1px solid var(--line);background:var(--soft);border-radius:999px;padding:9px 14px;font:inherit;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap}
.tabs button.on{background:var(--c);border-color:var(--c);color:#fff}
/* offres */
.offers{display:grid;gap:12px}
.offers-grid .offers{grid-template-columns:repeat(2,minmax(0,1fr))}
.offer{position:relative;display:grid;gap:3px;align-content:start;text-decoration:none;color:inherit;border:2px solid var(--line);border-radius:var(--r);padding:14px 16px;transition:border-color .15s,transform .15s;background:var(--card)}
.offer:hover,.offer:focus{border-color:var(--c);transform:translateY(-1px)}
.offer.hl{border-color:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 15%,transparent)}
.badge{position:absolute;top:-10px;right:12px;background:var(--c);color:#fff;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:999px}
.o-name{font-weight:700;font-size:17px}.o-price{font-size:26px;font-weight:800;color:var(--c)}
.o-meta{font-size:14px;color:var(--muted)}.o-desc{font-size:14px}.o-cta{font-weight:700;color:var(--c);font-size:14px;margin-top:4px}
/* formulaires */
label{display:block;font-size:14px;font-weight:600;margin:0 0 12px}
input[type=text],input[type=email],input[type=password],input[type=tel],select{display:block;width:100%;margin-top:5px;font:inherit;font-size:16px;padding:12px;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);border-radius:calc(var(--r) * .7);background:var(--card);color:var(--ink)}
input:focus,select:focus{outline:2px solid color-mix(in srgb,var(--c) 40%,transparent);border-color:var(--c)}
.code-input{text-transform:uppercase;letter-spacing:.12em;font-family:ui-monospace,Menlo,Consolas,monospace!important;font-size:20px!important;text-align:center}
label.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:14px}
label.check input{margin-top:3px;width:18px;height:18px;flex:none;accent-color:var(--c)}
.btn{display:inline-block;border:0;background:var(--c);color:#fff;font:inherit;font-weight:700;font-size:15px;padding:11px 18px;border-radius:calc(var(--r) * .7);text-decoration:none;cursor:pointer;text-align:center}
.btn:hover{filter:brightness(1.07)}.btn:disabled{opacity:.6}
.btn-block{display:block;width:100%}.btn-lg{padding:15px 18px;font-size:17px}
.btn-ghost{background:var(--card);color:var(--c);border:1px solid var(--c)}
.btn-alt{background:var(--accent)}.btn-sm{padding:6px 10px;font-size:13px}
.btn.loading{opacity:.7}
.summary{background:var(--soft);border-radius:calc(var(--r) * .85);padding:6px 14px;margin:10px 0 14px}
.summary div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.summary div:last-child{border-bottom:0}.summary span{color:var(--muted)}.summary .total b{font-size:20px;color:var(--c)}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px}
.box{border-radius:calc(var(--r) * .85);padding:12px 14px;margin:0 0 14px;background:var(--soft)}.box.ok{background:color-mix(in srgb,var(--ok) 10%,var(--card))}
.box form{margin:8px 0 0}
.pass-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);border-radius:calc(var(--r) * .85);padding:12px;margin:0 0 10px}
.pass{border:1px solid var(--line);border-radius:calc(var(--r) * .85);padding:12px 14px;margin:0 0 12px}
.pass.ok{border-left:4px solid var(--ok)}.pass.off{opacity:.75}
.pill{font-size:12px;font-weight:700;padding:2px 10px;border-radius:999px;background:#eee;color:#555}.pill.ok{background:#dff3e6;color:var(--ok)}.pill.off{background:#eee;color:#777}
.devs{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px}
.dev{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:6px 0}
.dev-name{flex:1;min-width:0}.dev-name input{padding:6px 8px;font-size:14px;margin:0 0 2px}
details.more{margin:12px 0}details.more summary{cursor:pointer;font-weight:600;color:var(--c);margin-bottom:10px}
.okmark{width:72px;height:72px;margin:6px auto 10px;border-radius:50%;background:var(--ok);color:#fff;font-size:40px;line-height:72px}
.spinner{width:46px;height:46px;margin:10px auto;border:5px solid var(--line);border-top-color:var(--c);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.terms{font-size:14px;white-space:normal}
.foot{text-align:center;font-size:13px;color:var(--muted);margin-top:18px}
.foot p{margin:4px 0}.powered{opacity:.6;font-size:11px}
/* ---------- publicités ---------- */
.ad-tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;background:rgba(0,0,0,.55);color:#fff;padding:3px 8px;border-radius:999px}
.ad-tag.mini{position:absolute;top:8px;left:8px;font-size:9.5px;padding:2px 6px}
.ad-banner{position:relative;margin:-6px -6px 16px;border-radius:var(--r);overflow:hidden;aspect-ratio:16/7;background:var(--soft)}
.ad-banner .slide{position:absolute;inset:0;opacity:0;transition:opacity .6s;display:block;color:#fff;text-decoration:none;pointer-events:none}
.ad-banner .slide.on{opacity:1;pointer-events:auto}
.ad-banner img,.ad-banner video{width:100%;height:100%;object-fit:cover;display:block}
.ad-banner .cap{position:absolute;left:0;right:0;bottom:0;padding:22px 12px 10px;background:linear-gradient(transparent,rgba(0,0,0,.7));font-size:14px;line-height:1.3}
.ad-banner .cap small{opacity:.9}
.ad-banner .dots{position:absolute;right:10px;bottom:8px;display:flex;gap:5px;z-index:2}
.ad-banner .dot{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.5);cursor:pointer}
.ad-banner .dot.on{background:#fff}
.ad-ov{position:fixed;inset:0;z-index:1000;background:rgba(8,14,12,.92);display:flex;align-items:center;justify-content:center;padding:14px;animation:adin .25s ease}
.ad-ov.out{opacity:0;transition:opacity .25s}
@keyframes adin{from{opacity:0}to{opacity:1}}
.ad-ov-in{width:100%;max-width:520px;max-height:100%;display:flex;flex-direction:column;background:#000;border-radius:var(--r);overflow:hidden;position:relative}
.ad-ov-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:10px;z-index:3}
.ad-skip{border:0;background:rgba(255,255,255,.92);color:#111;font:inherit;font-weight:700;font-size:14px;padding:8px 14px;border-radius:999px;cursor:pointer}
.ad-skip:disabled{background:rgba(255,255,255,.35);color:#fff;cursor:default}
.ad-media{position:relative;background:#000;display:flex;align-items:center;justify-content:center;min-height:200px;flex:1 1 auto;overflow:hidden}
.ad-media img,.ad-media video{width:100%;max-height:70vh;object-fit:contain;display:block}
.ad-sound{position:absolute;right:10px;bottom:10px;border:0;background:rgba(0,0,0,.55);color:#fff;border-radius:50%;width:38px;height:38px;font-size:17px;cursor:pointer}
.ad-txt{background:var(--card);color:var(--ink);padding:14px 16px}
.ad-txt b{font-size:17px}.ad-txt p{margin:4px 0 10px;font-size:14px;color:var(--muted)}
.ad-bar{height:4px;background:rgba(255,255,255,.15)}
.ad-bar i{display:block;height:100%;width:0;background:var(--c);animation:adbar linear forwards}
@keyframes adbar{to{width:100%}}
.partners{margin-top:22px}
.pcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pcard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:inherit;background:var(--card)}
.pcard img,.pcard video{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--soft)}
.pc-txt{padding:8px 10px;display:flex;flex-direction:column;gap:2px;font-size:14px}
.pc-txt small{color:var(--muted);font-size:12.5px;line-height:1.35}
.pc-txt em{font-style:normal;font-weight:700;color:var(--c);font-size:13px}
@media (max-width:380px){.pass-row{flex-direction:column;align-items:stretch}.title{font-size:21px}.offers-grid .offers{grid-template-columns:1fr}.pcards{grid-template-columns:1fr}}

/* temps restant */
.countdown{font-variant-numeric:tabular-nums}
.mt8{margin-top:8px}
.code-big{font-size:22px;letter-spacing:.12em;text-align:center;margin:0 0 12px}
.time-big{text-align:center;background:var(--soft);border-radius:var(--r);padding:16px;margin:0 0 14px}
.time-big span{display:block;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.time-big b{display:block;font-size:34px;color:var(--c);margin:4px 0 10px}
.time-big .bar{height:8px;background:var(--line);border-radius:999px;overflow:hidden}
.time-big .bar i{display:block;height:100%;background:var(--c);border-radius:999px}

/* ===================================================================
   Image de fond (toutes les variantes sauf « Plein air », où elle part dans l'en-tête)
   =================================================================== */
.hero-name{display:none}
body.has-bg:not(.tpl-outdoor){background-image:linear-gradient(rgba(10,20,16,var(--ov,.5)),rgba(10,20,16,var(--ov,.5))),var(--bgimg,none)}

/* ===================================================================
   Modèle « Plein air » : grande photo, panneau d'achat en feuille qui remonte
   =================================================================== */
body.tpl-outdoor{background:var(--bg)}
.tpl-outdoor .top{position:relative;margin:0;min-height:max(260px,40vh);display:flex;color:#fff;
  background:
    linear-gradient(180deg,rgba(0,0,0,.28) 0%,rgba(0,0,0,0) 35%,rgba(0,0,0,.55) 100%),
    var(--bgimg,none) center/cover no-repeat,
    linear-gradient(162deg,transparent 52%,color-mix(in srgb,var(--c) 80%,#000) 52%,var(--c) 72%,transparent 72%) bottom/100% 60% no-repeat,
    linear-gradient(200deg,transparent 46%,color-mix(in srgb,var(--c) 60%,#000) 46%) bottom/100% 55% no-repeat,
    linear-gradient(180deg,#8fb3cf 0%,#d7e3ea 70%,#e9efe9 100%)}
.tpl-outdoor .top-in{width:100%;flex-direction:row;align-items:flex-start;padding:18px 18px 64px}
.tpl-outdoor .logo-txt{display:none}
.tpl-outdoor .logo{filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.tpl-outdoor .hero-name{display:block;position:absolute;left:20px;right:20px;bottom:46px;font-size:clamp(28px,8vw,40px);line-height:1.05;font-weight:800;letter-spacing:-.02em;text-shadow:0 2px 14px rgba(0,0,0,.4)}
.tpl-outdoor .langs select{background:rgba(255,255,255,.88);border:0}
.tpl-outdoor .wrap{margin-top:-30px;position:relative;z-index:2}
.tpl-outdoor .card{border-radius:26px 26px var(--r) var(--r);box-shadow:0 -12px 32px rgba(0,0,0,.14);padding-top:26px}
.tpl-outdoor .card::before{content:'';position:absolute;left:50%;top:9px;width:38px;height:4px;margin-left:-19px;border-radius:2px;background:var(--line)}
.tpl-outdoor .title{font-size:22px}
.tpl-outdoor .tabs{background:var(--soft);border-radius:999px;padding:4px;gap:2px;margin:6px 0 16px}
.tpl-outdoor .tabs button{border:0;background:transparent;padding:8px 12px}
.tpl-outdoor .tabs button.on{background:var(--card);color:var(--c);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.tpl-outdoor .offers{gap:0}
.tpl-outdoor .offer{grid-template-columns:1fr auto;column-gap:14px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:15px 4px;transform:none}
.tpl-outdoor .offer:hover,.tpl-outdoor .offer:focus{background:var(--soft);transform:none}
.tpl-outdoor .offer.hl{box-shadow:inset 3px 0 0 var(--c);padding-left:12px}
.tpl-outdoor .offer > *{grid-column:1}
.tpl-outdoor .offer .o-price{grid-column:2;grid-row:1 / span 4;align-self:center;font-size:22px}
.tpl-outdoor .offer .o-cta{display:none}
.tpl-outdoor .badge{position:static;justify-self:start;margin-bottom:4px}

/* ===================================================================
   Modèle « Billet » : chaque forfait est un ticket détachable
   =================================================================== */
body.tpl-ticket{background-color:var(--bg);background-image:repeating-radial-gradient(circle at 15% 20%,transparent 0 22px,color-mix(in srgb,var(--c) 9%,transparent) 22px 23px),repeating-radial-gradient(circle at 85% 75%,transparent 0 30px,color-mix(in srgb,var(--c) 7%,transparent) 30px 31px)}
.tpl-ticket .card{background:transparent;box-shadow:none;padding:6px 0}
.tpl-ticket .title{font-size:32px;line-height:1.05;letter-spacing:-.01em}
.tpl-ticket .lead{color:var(--ink);opacity:.8}
.tpl-ticket main > *:not(.offers):not([data-tabs]):not(.ad-banner),
.tpl-ticket [data-pane] > form,.tpl-ticket [data-pane] > p,.tpl-ticket .summary,.tpl-ticket .pass,.tpl-ticket .pass-row{position:relative}
.tpl-ticket [data-pane="login"],.tpl-ticket [data-pane="code"],.tpl-ticket [data-pane="trial"],.tpl-ticket .summary,.tpl-ticket .box,.tpl-ticket .pass{background:var(--card);border-radius:var(--r);padding:16px;box-shadow:0 2px 0 rgba(0,0,0,.08)}
.tpl-ticket .tabs button{background:var(--card);border-color:transparent;box-shadow:0 2px 0 rgba(0,0,0,.08)}
.tpl-ticket .tabs button.on{background:var(--c);color:#fff}
.tpl-ticket .offers{gap:14px}
.tpl-ticket .offer{grid-template-columns:1fr auto;column-gap:0;border:0;padding:16px 0 16px 22px;background:var(--card);border-radius:10px;box-shadow:0 3px 0 rgba(0,0,0,.1);
  -webkit-mask:radial-gradient(circle 11px at 0 50%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 50%,#0000 98%,#000) right/51% 100% no-repeat;
  mask:radial-gradient(circle 11px at 0 50%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 50%,#0000 98%,#000) right/51% 100% no-repeat}
.tpl-ticket .offer:hover,.tpl-ticket .offer:focus{transform:rotate(-.6deg)}
.tpl-ticket .offer.hl{box-shadow:0 3px 0 var(--c)}
.tpl-ticket .offer > *{grid-column:1;padding-right:12px}
.tpl-ticket .offer .o-name{font-size:19px;font-weight:800}
.tpl-ticket .offer .o-price{grid-column:2;grid-row:1 / span 5;align-self:stretch;display:flex;align-items:center;justify-content:center;min-width:104px;padding:0 22px;border-left:2px dashed color-mix(in srgb,var(--ink) 25%,transparent);font-size:24px}
.tpl-ticket .offer .o-cta{display:none}
.tpl-ticket .badge{position:static;justify-self:start;margin-bottom:4px}
.tpl-ticket .foot,.tpl-ticket .foot a{color:var(--ink)}

/* ===================================================================
   Modèle « Épuré » : typographie et filets, sans cartes
   =================================================================== */
body.tpl-minimal{background:var(--bg)}
.tpl-minimal .top{border-bottom:1px solid var(--line);margin-bottom:28px}
.tpl-minimal .top-in{padding-bottom:14px}
.tpl-minimal .card{box-shadow:none;background:transparent;padding:0}
.tpl-minimal .title{font-size:clamp(30px,8vw,40px);font-weight:700;letter-spacing:-.035em;line-height:1.02;margin-bottom:12px}
.tpl-minimal .lead{font-size:17px;max-width:34ch}
.tpl-minimal .tabs{gap:20px;border-bottom:1px solid var(--line);margin:22px 0 6px;padding:0}
.tpl-minimal .tabs button{flex:0 0 auto;background:none;border:0;border-bottom:2px solid transparent;border-radius:0;padding:10px 0;color:var(--muted)}
.tpl-minimal .tabs button.on{background:none;color:var(--ink);border-bottom-color:var(--c)}
.tpl-minimal .offers{gap:0}
.tpl-minimal .offer{grid-template-columns:1fr auto;column-gap:16px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:18px 0;transform:none}
.tpl-minimal .offer:hover .o-name,.tpl-minimal .offer:focus .o-name{color:var(--c)}
.tpl-minimal .offer:hover,.tpl-minimal .offer:focus{transform:none}
.tpl-minimal .offer.hl{box-shadow:none}
.tpl-minimal .offer > *{grid-column:1}
.tpl-minimal .offer .o-name{font-size:18px;font-weight:600}
.tpl-minimal .offer .o-price{grid-column:2;grid-row:1;font-size:18px;font-weight:600;color:var(--ink)}
.tpl-minimal .offer .o-cta{display:none}
.tpl-minimal .badge{position:static;grid-column:2;grid-row:2;justify-self:end;background:none;color:var(--c);padding:0;font-size:12px;letter-spacing:0;text-transform:none}
.tpl-minimal .summary,.tpl-minimal .box{background:none;border:1px solid var(--line)}
.tpl-minimal .foot{text-align:left;border-top:1px solid var(--line);padding-top:14px}

/* ===================================================================
   Modèle « Soirée » : ciel de nuit, panneaux translucides
   =================================================================== */
body.tpl-night{background-color:var(--bg);background-image:
  radial-gradient(1.2px 1.2px at 12% 8%,#fff 50%,transparent),radial-gradient(1px 1px at 28% 22%,rgba(255,255,255,.8) 50%,transparent),
  radial-gradient(1.4px 1.4px at 46% 6%,#fff 50%,transparent),radial-gradient(1px 1px at 63% 18%,rgba(255,255,255,.7) 50%,transparent),
  radial-gradient(1.6px 1.6px at 81% 9%,#fff 50%,transparent),radial-gradient(1px 1px at 92% 27%,rgba(255,255,255,.6) 50%,transparent),
  radial-gradient(1px 1px at 6% 34%,rgba(255,255,255,.6) 50%,transparent),radial-gradient(1.2px 1.2px at 74% 38%,rgba(255,255,255,.7) 50%,transparent),
  radial-gradient(60% 40% at 50% 100%,color-mix(in srgb,var(--c) 22%,transparent),transparent),
  linear-gradient(180deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 82%,#4a6a96) 100%);background-attachment:fixed}
.tpl-night .card{background:color-mix(in srgb,var(--card) 72%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.09);box-shadow:0 20px 50px rgba(0,0,0,.35)}
.tpl-night .logo-txt{color:var(--c)}
.tpl-night .title{letter-spacing:-.01em}
.tpl-night .offer{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.1)}
.tpl-night .offer.hl{border-color:var(--c);box-shadow:0 0 0 1px var(--c),0 0 28px color-mix(in srgb,var(--c) 30%,transparent)}
.tpl-night .badge{color:#1b1206}
.tpl-night .btn{color:#1b1206}
.tpl-night .btn-ghost{color:var(--c);background:transparent}
.tpl-night .tabs button.on{color:#1b1206}
.tpl-night .note{background:color-mix(in srgb,var(--c) 12%,transparent);border-color:color-mix(in srgb,var(--c) 35%,transparent);color:var(--ink)}
.tpl-night input[type=text],.tpl-night input[type=email],.tpl-night input[type=password],.tpl-night input[type=tel],.tpl-night select{background:rgba(0,0,0,.25);border-color:rgba(255,255,255,.18)}
.tpl-night .foot,.tpl-night .foot a{color:color-mix(in srgb,var(--ink) 70%,transparent)}

@media (prefers-reduced-motion:reduce){.offer,.tpl-ticket .offer:hover{transition:none;transform:none}}

/* ===================================================================
   Modèle « Plage » : vague, sable, serviettes rayées
   =================================================================== */
body.tpl-seaside{background-color:var(--bg);background-image:radial-gradient(color-mix(in srgb,var(--ink) 7%,transparent) 1px,transparent 1.6px);background-size:14px 14px}
.tpl-seaside .top{position:relative;background:var(--c);padding-bottom:34px;margin-bottom:6px}
.tpl-seaside .top::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:30px;background:var(--bg);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 30' preserveAspectRatio='none'%3E%3Cpath d='M0 18 C50 0 100 0 150 14 S250 30 300 14 S370 2 400 10 V30 H0Z'/%3E%3C/svg%3E") bottom/100% 100% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 30' preserveAspectRatio='none'%3E%3Cpath d='M0 18 C50 0 100 0 150 14 S250 30 300 14 S370 2 400 10 V30 H0Z'/%3E%3C/svg%3E") bottom/100% 100% no-repeat}
.tpl-seaside .logo-txt{color:#fff}
.tpl-seaside .langs select{border:0}
.tpl-seaside .card{box-shadow:0 10px 30px color-mix(in srgb,var(--c) 18%,transparent)}
.tpl-seaside .tabs button{border:0;background:color-mix(in srgb,var(--c) 10%,var(--card))}
.tpl-seaside .offers{gap:12px}
.tpl-seaside .offer{grid-template-columns:1fr auto;column-gap:12px;border:0;padding:16px 16px 16px 26px;
  background:repeating-linear-gradient(180deg,var(--c) 0 9px,color-mix(in srgb,var(--c) 18%,#fff) 9px 18px) left/10px 100% no-repeat,color-mix(in srgb,var(--c) 5%,var(--card));
  box-shadow:0 1px 0 color-mix(in srgb,var(--ink) 8%,transparent)}
.tpl-seaside .offer > *{grid-column:1}
.tpl-seaside .offer .o-price{grid-column:2;grid-row:1 / span 4;align-self:center;background:var(--c);color:#fff;font-size:18px;padding:8px 14px;border-radius:999px}
.tpl-seaside .offer .o-cta{display:none}
.tpl-seaside .offer.hl{box-shadow:0 0 0 2px var(--c)}
.tpl-seaside .badge{position:static;justify-self:start;margin-bottom:4px;background:var(--accent)}

/* ===================================================================
   Modèle « Sentier » : panneaux de randonnée fléchés sur un poteau
   =================================================================== */
body.tpl-signpost{background-color:var(--bg);background-image:repeating-linear-gradient(100deg,transparent 0 46px,color-mix(in srgb,var(--accent) 6%,transparent) 46px 48px)}
.tpl-signpost .card{background:transparent;box-shadow:none;padding:4px 0}
.tpl-signpost .title{font-size:34px;line-height:1;color:var(--c)}
.tpl-signpost .tabs button{border-radius:3px;border-color:color-mix(in srgb,var(--accent) 35%,transparent);background:var(--card)}
.tpl-signpost .tabs button.on{background:var(--accent);border-color:var(--accent)}
.tpl-signpost [data-pane="login"],.tpl-signpost [data-pane="code"],.tpl-signpost [data-pane="trial"],.tpl-signpost .summary,.tpl-signpost .box{background:var(--card);padding:16px;border-radius:var(--r);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent)}
.tpl-signpost .offers{position:relative;gap:16px;padding:6px 0}
.tpl-signpost .offers::before{content:'';position:absolute;left:50%;top:-8px;bottom:-14px;width:14px;margin-left:-7px;border-radius:3px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 70%,#000),var(--accent) 40%,color-mix(in srgb,var(--accent) 80%,#000))}
.tpl-signpost .offer{position:relative;z-index:1;grid-template-columns:1fr auto;column-gap:10px;border:0;border-radius:3px;padding:14px 40px 14px 18px;background:var(--accent);color:#fff8e7;
  clip-path:polygon(0 0,calc(100% - 26px) 0,100% 50%,calc(100% - 26px) 100%,0 100%);box-shadow:none;transform:none}
.tpl-signpost .offer:nth-child(even){padding:14px 18px 14px 40px;clip-path:polygon(26px 0,100% 0,100% 100%,26px 100%,0 50%)}
.tpl-signpost .offer:hover,.tpl-signpost .offer:focus{filter:brightness(1.12);transform:none}
.tpl-signpost .offer.hl{background:var(--c)}
.tpl-signpost .offer > *{grid-column:1}
.tpl-signpost .offer .o-name{font-size:19px;font-weight:800;letter-spacing:.01em}
.tpl-signpost .offer .o-meta,.tpl-signpost .offer .o-desc{color:rgba(255,248,231,.82)}
.tpl-signpost .offer .o-price{grid-column:2;grid-row:1 / span 4;align-self:center;color:#ffe9a8;font-size:24px}
.tpl-signpost .offer .o-cta{display:none}
.tpl-signpost .badge{position:static;justify-self:start;margin-bottom:4px;background:#ffe9a8;color:#2a2a1e}

/* ===================================================================
   Modèle « Carte postale » : liseré par avion, timbres, cachet
   =================================================================== */
body.tpl-postcard{background:var(--bg)}
.tpl-postcard .card{border:10px solid;border-image:repeating-linear-gradient(-45deg,var(--c) 0 12px,var(--card) 12px 22px,var(--accent) 22px 34px,var(--card) 34px 44px) 10;box-shadow:0 14px 30px rgba(0,0,0,.12)}
.tpl-postcard .card::after{content:'';position:absolute;top:14px;right:14px;width:62px;height:62px;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent) 45%,transparent);
  background:repeating-linear-gradient(0deg,transparent 0 9px,color-mix(in srgb,var(--accent) 30%,transparent) 9px 10px);opacity:.7;pointer-events:none}
.tpl-postcard .title{font-size:30px;font-weight:400;padding-right:70px}
.tpl-postcard .lead{padding-right:40px}
.tpl-postcard .tabs button{border-radius:2px;background:transparent}
.tpl-postcard .offers{gap:0}
.tpl-postcard .offer{grid-template-columns:1fr auto;column-gap:14px;border:0;border-bottom:1px dashed color-mix(in srgb,var(--ink) 30%,transparent);border-radius:0;padding:16px 2px;background:none;transform:none}
.tpl-postcard .offer:hover,.tpl-postcard .offer:focus{transform:none;background:color-mix(in srgb,var(--c) 4%,transparent)}
.tpl-postcard .offer.hl{box-shadow:none}
.tpl-postcard .offer > *{grid-column:1}
.tpl-postcard .offer .o-name{font-size:19px;font-weight:400}
.tpl-postcard .offer .o-price{grid-column:2;grid-row:1 / span 4;align-self:center;font-size:17px;color:var(--c);background:var(--card);padding:12px 10px;border:2px solid var(--c);transform:rotate(3deg);
  outline:3px dotted var(--c);outline-offset:3px;margin:6px}
.tpl-postcard .offer:nth-child(even) .o-price{transform:rotate(-2deg);color:var(--accent);border-color:var(--accent)}
.tpl-postcard .offer .o-cta{display:none}
.tpl-postcard .badge{position:static;justify-self:start;margin-bottom:4px;border-radius:2px}

/* ===================================================================
   Modèle « Rétro 70 » : bandes coucher de soleil, contours épais
   =================================================================== */
body.tpl-retro{background:var(--bg)}
.tpl-retro .top{padding-bottom:30px;background:
  linear-gradient(180deg,color-mix(in srgb,var(--c) 35%,#ffd23f) 0 33.3%,var(--c) 33.3% 66.6%,var(--accent) 66.6% 100%) bottom/100% 18px no-repeat}
.tpl-retro .logo-txt{color:var(--accent);font-weight:900}
.tpl-retro .card{border:3px solid var(--ink);box-shadow:8px 8px 0 var(--accent)}
.tpl-retro .title{font-size:32px;font-weight:900;letter-spacing:-.02em;color:var(--accent)}
.tpl-retro .tabs button{border:2px solid var(--ink);background:var(--card)}
.tpl-retro .tabs button.on{background:var(--c);border-color:var(--ink)}
.tpl-retro .btn{border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}
.tpl-retro .btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.tpl-retro .offers{gap:14px}
.tpl-retro .offer{grid-template-columns:1fr auto;column-gap:12px;border:3px solid var(--ink);box-shadow:5px 5px 0 var(--c);transition:transform .12s,box-shadow .12s}
.tpl-retro .offer:hover,.tpl-retro .offer:focus{border-color:var(--ink);transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--c)}
.tpl-retro .offer.hl{box-shadow:5px 5px 0 var(--accent)}
.tpl-retro .offer > *{grid-column:1}
.tpl-retro .offer .o-name{font-weight:900}
.tpl-retro .offer .o-price{grid-column:2;grid-row:1 / span 4;align-self:center;font-weight:900;font-size:26px}
.tpl-retro .offer .o-cta{display:none}
.tpl-retro .badge{position:static;justify-self:start;margin-bottom:4px;background:var(--accent);border:2px solid var(--ink)}

/* ===================================================================
   Modèle « Mosaïque » : tuiles colorées façon bento
   =================================================================== */
body.tpl-bento{background:var(--bg)}
.tpl-bento .card{background:transparent;box-shadow:none;padding:4px 0}
.tpl-bento .title{font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1.02}
.tpl-bento .tabs{background:var(--card);border-radius:999px;padding:4px;gap:2px}
.tpl-bento .tabs button{border:0;background:transparent}
.tpl-bento [data-pane="login"],.tpl-bento [data-pane="code"],.tpl-bento [data-pane="trial"],.tpl-bento .summary,.tpl-bento .box,.tpl-bento .pass{background:var(--card);padding:16px;border-radius:var(--r)}
.tpl-bento .offers{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tpl-bento .offer{border:0;min-height:132px;align-content:space-between;grid-template-rows:auto auto 1fr auto;padding:16px;background:color-mix(in srgb,var(--c) 13%,var(--card))}
.tpl-bento .offer:nth-child(4n+2){background:color-mix(in srgb,#ffb020 20%,var(--card))}
.tpl-bento .offer:nth-child(4n+3){background:color-mix(in srgb,#19c39c 18%,var(--card))}
.tpl-bento .offer:nth-child(4n+4){background:color-mix(in srgb,var(--accent) 10%,var(--card))}
.tpl-bento .offer:first-child,.tpl-bento .offer.hl{grid-column:span 2;background:var(--c);color:#fff}
.tpl-bento .offer:first-child .o-meta,.tpl-bento .offer.hl .o-meta,.tpl-bento .offer:first-child .o-desc,.tpl-bento .offer.hl .o-desc{color:rgba(255,255,255,.8)}
.tpl-bento .offer:first-child .o-price,.tpl-bento .offer.hl .o-price{color:#fff;font-size:34px}
.tpl-bento .offer:hover,.tpl-bento .offer:focus{transform:scale(.985)}
.tpl-bento .offer .o-name{font-size:16px}
.tpl-bento .offer .o-price{order:5;font-size:26px;color:var(--ink);letter-spacing:-.02em}
.tpl-bento .offer .o-meta{font-size:12.5px}
.tpl-bento .offer .o-desc{display:none}
.tpl-bento .offer .o-cta{display:none}
.tpl-bento .badge{position:static;justify-self:start;background:#fff;color:var(--c);margin-bottom:2px}
@media (max-width:360px){.tpl-bento .offers{grid-template-columns:1fr}.tpl-bento .offer:first-child,.tpl-bento .offer.hl{grid-column:auto}}

/* onglet actif lisible sur les modèles à onglets teintés */
.tpl-seaside .tabs button.on,.tpl-postcard .tabs button.on,.tpl-bento .tabs button.on{background:var(--c);color:#fff;border-color:var(--c)}
.tpl-postcard .offer:nth-child(even) .o-price{outline-color:var(--accent)}

/* ---------- fiches publicitaires (clic) ---------- */
.ad-banner .slide{border:0;padding:0;margin:0;width:100%;font:inherit;text-align:left;cursor:pointer;background:none}
.ad-plus{position:absolute;right:10px;top:8px;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.5);color:#fff;font-size:18px;line-height:26px;text-align:center}
button.pcard{border:1px solid var(--line);padding:0;font:inherit;text-align:left;cursor:pointer;color:inherit}
.pc-txt small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ad-sheet{position:fixed;inset:0;z-index:1100;display:flex;align-items:flex-end;justify-content:center}
.ad-sheet[hidden]{display:none!important}
.ad-sheet-bg{position:absolute;inset:0;background:rgba(8,14,12,.6)}
.ad-sheet-in{position:relative;width:100%;max-width:560px;max-height:88vh;overflow:auto;background:var(--card);color:var(--ink);border-radius:20px 20px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,.3);animation:sheetup .22s ease}
@keyframes sheetup{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@media (min-width:600px){.ad-sheet{align-items:center}.ad-sheet-in{border-radius:20px}}
.ad-sheet-x{position:absolute;top:10px;right:10px;z-index:2;width:36px;height:36px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:16px;cursor:pointer}
.ad-d-media{background:#000}.ad-d-media img,.ad-d-media video{display:block;width:100%;max-height:55vh;object-fit:contain}
.ad-d-txt{padding:16px 18px 20px}
.ad-d-tag{display:inline-block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:4px}
.ad-d-txt h3{margin:0 0 6px;font-size:20px;line-height:1.25}
.ad-d-txt p{margin:0 0 14px;color:var(--muted);font-size:15px}
@media (prefers-reduced-motion:reduce){.ad-sheet-in{animation:none}}

/* consommation dans l'espace client */
.usage{margin:10px 0 4px;padding:10px 12px;background:var(--soft);border-radius:calc(var(--r) * .7)}
.usage-bar{height:8px;border-radius:999px;background:var(--line);overflow:hidden;margin:8px 0 6px}
.usage-bar i{display:block;height:100%;background:var(--c);border-radius:999px}
.usage .countdown{color:var(--c);font-size:17px}
.this-dev{color:var(--ok)}
.dev-name .small{display:block}
.okmark.pay{background:var(--primary,#0d7a5f);font-size:32px}
.copy-link{margin:4px 0 14px;padding:10px;border:1px dashed var(--line,#dfe5e2);border-radius:12px;background:rgba(0,0,0,.02)}
.copy-link small{display:block;color:var(--muted,#6b7772);margin-bottom:6px;font-size:12px}
.copy-link div{display:flex;gap:6px}.copy-link input{flex:1;min-width:0;margin:0;font-size:12px;padding:6px 8px}
.go-box{margin:4px 0 14px;padding:12px;border:1px dashed var(--line,#d5ddd9);border-radius:14px;text-align:center;background:rgba(0,0,0,.02)}
.go-box small{display:block;color:var(--muted,#6b7772);font-size:12px;margin-bottom:6px}
.go-url{display:block;font-size:19px;letter-spacing:.02em;margin:2px 0 8px;font-family:ui-monospace,Menlo,Consolas,monospace;word-break:break-all;user-select:all}
/* ---------- Mon compte : forfaits (v4) ---------- */
.mp-head{display:flex;align-items:center;gap:12px;margin:0 0 14px}
.mp-av{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:19px;color:#fff;background:var(--c);flex:none;box-shadow:0 6px 14px -6px var(--c)}
.mp-who{flex:1;min-width:0;display:flex;flex-direction:column}.mp-who b{font-size:17px;line-height:1.25}
.mp-who small{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-out{font-size:13px;font-weight:600;color:var(--muted);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:5px 11px;white-space:nowrap}
.mp-web{margin:0 0 20px}
.mp-h{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px;font-weight:700}
.mp-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:0 0 14px;box-shadow:0 4px 18px -8px rgba(0,0,0,.18);position:relative;overflow:hidden}
.mp-card::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--c)}
.mp-card.soon::before{background:var(--warn)}
.mp-top{display:flex;align-items:center;gap:11px}
.mp-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:19px;background:color-mix(in srgb,var(--c) 12%,var(--card));flex:none}
.mp-name{flex:1;min-width:0;display:flex;flex-direction:column}.mp-name b{font-size:16.5px;line-height:1.25}.mp-name small{color:var(--muted);font-size:12.5px}
.mp-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}
.mp-pill i{width:7px;height:7px;border-radius:50%;background:currentColor}
.mp-pill.on{background:color-mix(in srgb,var(--ok) 14%,var(--card));color:var(--ok)}
.mp-pill.on i{animation:mpPulse 1.8s infinite}
.mp-pill.soon{background:color-mix(in srgb,var(--warn) 14%,var(--card));color:var(--warn)}
.mp-pill.off{background:var(--soft);color:var(--muted)}
@keyframes mpPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ok) 60%,transparent)}50%{box-shadow:0 0 0 5px transparent}}
.mp-time{margin:14px 0 8px;display:flex;flex-direction:column;align-items:flex-start}
.mp-time small{font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700}
.mp-time b{font-size:30px;line-height:1.15;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--ink)}
.mp-time em{font-style:normal;font-size:13px;color:var(--muted)}
.mp-bar{height:8px;border-radius:99px;background:var(--soft);overflow:hidden;border:1px solid var(--line)}
.mp-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 65%,#fff))}
.mp-bar-l{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--muted);margin:5px 0 0}
.mp-devs{margin-top:14px;background:var(--soft);border-radius:calc(var(--r) * .8);padding:6px}
.mp-devs-h{display:flex;justify-content:space-between;align-items:center;padding:6px 8px 4px;font-size:13px}
.mp-devs-h span{font-weight:700;font-size:12px;background:var(--card);border:1px solid var(--line);border-radius:99px;padding:1px 9px}
.mp-dev{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:calc(var(--r) * .7);padding:8px 8px 8px 10px;margin:6px 0 0}
.mp-dev.me{border-color:color-mix(in srgb,var(--c) 45%,var(--line))}
.mp-dev.free{background:transparent;border-style:dashed;color:var(--muted)}
.mp-dev-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--soft);font-size:17px;flex:none}
.mp-dev.free .mp-dev-ico{font-size:18px;font-weight:700;color:var(--muted)}
.mp-dev-t{flex:1;min-width:0;display:flex;flex-direction:column;margin:0}
.mp-dev-t input{border:0!important;background:transparent!important;padding:2px 0!important;margin:0!important;font-size:15px!important;font-weight:650;color:var(--ink);border-radius:6px!important;box-shadow:none!important}
.mp-dev-t input:focus{outline:2px solid color-mix(in srgb,var(--c) 40%,transparent);background:var(--card)!important;padding:2px 6px!important}
.mp-dev-t small{font-size:12px;color:var(--muted);line-height:1.35}
.mp-dev-t b{font-size:14px;color:var(--ink)}
.mp-me{color:var(--c)!important;font-size:12px!important}
.mp-x{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--muted);font-size:13px;cursor:pointer;flex:none}
.mp-x:hover{color:var(--err);border-color:var(--err)}
.mp-rcpt{display:inline-block;margin-top:12px;font-size:13px;font-weight:600;text-decoration:none}
.mp-empty{text-align:center;background:var(--soft);border-radius:var(--r);padding:20px 16px;margin:0 0 14px}
.mp-empty span{font-size:30px}.mp-empty p{margin:6px 0 12px;color:var(--muted)}
.mp-hist{border:1px solid var(--line);border-radius:var(--r);margin:0 0 16px;background:var(--card)}
.mp-hist summary{cursor:pointer;padding:12px 14px;font-weight:700;font-size:14px;list-style:none;display:flex;justify-content:space-between;align-items:center}
.mp-hist summary::-webkit-details-marker{display:none}
.mp-hist summary::after{content:"▾";color:var(--muted)}.mp-hist[open] summary::after{content:"▴"}
.mp-hist summary i{font-style:normal;font-size:12px;background:var(--soft);border-radius:99px;padding:1px 9px;margin-left:auto;margin-right:8px}
.mp-old{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-top:1px solid var(--line)}
.mp-old>span:first-child{display:flex;flex-direction:column;min-width:0}.mp-old b{font-size:14px}.mp-old small{font-size:12px;color:var(--muted)}
/* ---------- Paiement intégré (Stripe Elements) ---------- */
.co-head{display:flex;align-items:center;gap:12px;margin:0 0 14px}
.co-head .title{margin:0}.co-head p{margin:2px 0 0}
.co-lock{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-size:20px;background:color-mix(in srgb,var(--c) 12%,var(--card));flex:none}
.co-sum{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--soft);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:0 0 16px}
.co-sum b{display:block;font-size:16px}.co-sum small{color:var(--muted);font-size:13px}
.co-sum strong{font-size:22px;color:var(--c);white-space:nowrap}
.co-pe{min-height:120px;margin:0 0 14px}
.co-load{display:flex;gap:6px;justify-content:center;padding:44px 0}
.co-load i{width:9px;height:9px;border-radius:50%;background:var(--c);opacity:.3;animation:coDot 1s infinite}
.co-load i:nth-child(2){animation-delay:.15s}.co-load i:nth-child(3){animation-delay:.3s}
@keyframes coDot{50%{opacity:1;transform:translateY(-4px)}}
.co-btn{position:relative}.co-btn:disabled{opacity:.6;cursor:wait}
.co-spin{display:inline-block;width:15px;height:15px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;vertical-align:-2px;animation:coSpin .7s linear infinite}
@keyframes coSpin{to{transform:rotate(360deg)}}
.co-note{font-size:12px;color:var(--muted);text-align:center;margin:10px 0 14px}
.co-alt-big a{display:block;background:var(--c);color:#fff!important;text-decoration:none;font-weight:700;border-radius:calc(var(--r) * .7);padding:12px 16px;font-size:15px}

/* Code promo */
.pm{margin:4px 0 16px;border:1px dashed color-mix(in srgb,var(--c,#0d7a5f) 45%,#d0d5dd);border-radius:12px;padding:10px 14px;background:color-mix(in srgb,var(--c,#0d7a5f) 4%,#fff)}
.pm summary{cursor:pointer;font-weight:600;font-size:14px;list-style:none}
.pm summary::-webkit-details-marker{display:none}
.pm-row{display:flex;gap:8px;margin-top:10px}
.pm-row input{flex:1;min-width:0;margin:0;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.pm-row .btn{margin:0;white-space:nowrap}
.pm-msg{margin:8px 0 0;font-size:13px;font-weight:600}
.pm-msg.ok{color:#067647}.pm-msg.err{color:#b42318}
.pm-old{color:#98a2b3;font-weight:500;margin-right:4px}
.pm-disc b{color:#067647}
.summary div[hidden]{display:none}

/* Paiement Android (fenêtre de connexion → Chrome) */
.ap{margin:6px 0 10px}
.ap-intro{font-weight:600;margin:0 0 10px}
.ap-code{border:2px dashed var(--c);border-radius:var(--r,14px);padding:12px 14px;text-align:center;background:var(--soft);cursor:pointer;margin:0 0 12px}
.ap-code small{display:block;color:var(--muted);font-size:12.5px;margin-bottom:4px}
.ap-code b,.ap-big{display:block;font-size:20px;letter-spacing:.02em;word-break:break-all;color:var(--c);user-select:all;-webkit-user-select:all}
.ap-steps{margin:0 0 14px;padding-left:20px;font-size:14px;line-height:1.5}.ap-steps li{margin-bottom:6px}
.ap-ok{margin-top:6px;text-align:center}.ap-ok p{font-weight:600;margin:0 0 6px}
.ap-big{font-size:22px;margin:0 0 12px}

/* Prolongation */
.ex-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:6px 0 14px}
.ex-opt{margin:0;cursor:pointer}
.ex-opt input{position:absolute;opacity:0;pointer-events:none}
.ex-opt span{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 10px;border:2px solid var(--line);border-radius:calc(var(--r) * .8);background:var(--card,#fff);text-align:center;transition:border-color .15s,background .15s}
.ex-opt b{font-size:15px}.ex-opt strong{font-size:18px;color:var(--c)}.ex-opt small{color:var(--muted);font-size:12px}
.ex-opt input:checked+span{border-color:var(--c);background:var(--soft);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 18%,transparent)}
.ex-new{margin-top:0}
.mp-ext{display:flex;align-items:center;gap:8px;justify-content:center;margin:12px 0 2px;padding:11px;border-radius:calc(var(--r) * .7);border:1.5px dashed var(--c);color:var(--c);font-weight:700;text-decoration:none;background:var(--soft)}
.mp-ext-tag{font-style:normal;font-size:11px;font-weight:700;padding:2px 7px;border-radius:99px;background:var(--soft);color:var(--c);vertical-align:middle;white-space:nowrap}
.mp-exts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:12px 0 2px}.mp-exts .mp-ext{margin:0}
.mp-rate{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 0 0;padding:10px 14px;border-radius:calc(var(--r) * .7);background:var(--soft);font-size:14px}.mp-rate span{color:var(--muted)}.mp-rate b{white-space:nowrap}
.mp-exts .mp-ext{text-align:center;line-height:1.25}
.mp-add{display:flex;flex-direction:column;gap:8px;margin:8px 0 2px;padding:10px 12px;border-radius:calc(var(--r) * .7);border:1.5px dashed var(--c);background:var(--soft)}
.mp-add b{font-size:13.5px;font-weight:600}.mp-add .btn{margin:0}
.mp-add.warn{border-color:#f5b54a;background:#fffaf0}
.mp-dev{flex-wrap:wrap}
.mp-rep{border:1px solid var(--c);background:#fff;color:var(--c);font-weight:700;font-size:12.5px;border-radius:99px;padding:6px 10px;cursor:pointer;white-space:nowrap}
.mp-dev form:has(.mp-rep){margin:0}
.mp-dev form:has(.mp-rep){flex-basis:100%;order:3;margin:2px 0 0}.mp-rep{width:100%;padding:8px 10px}.mp-dev .mp-dev-t{flex:1;min-width:0}
/* Accueil : client connecté */
.hp{margin:6px 0 18px}
.hp-head{display:flex;align-items:center;gap:12px;margin:0 0 10px}
.hp-acc{margin:0 0 12px}
.hp-card{margin:0 0 12px}
.hp-ok{margin:12px 0 10px;padding:10px 12px;border-radius:calc(var(--r) * .7);background:#ecfdf3;color:#067647;font-weight:700;font-size:14px}
.hp-go{margin-top:12px}
.hp .mp-devs{margin-top:8px}
.hp-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.hp-tags i{font-style:normal;font-size:12px;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--soft);color:var(--ink);white-space:nowrap}.hp-tags i.full{background:#fffaf0;color:#b54708}
/* Limite d'appareils */
.dl-head{text-align:center;margin:0 0 14px}
.dl-ico{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#fff4e5;font-size:30px;margin:0 auto 8px}
.dl-head .title{margin:0 0 6px}.dl-head p{margin:0;font-size:15px;line-height:1.5}
.dl-card{margin:0 0 14px}
.dl-hint{margin:10px 2px 0;font-size:13px;color:var(--muted)}
.dl-alt{display:flex;flex-direction:column;gap:8px}
.dl-alt .btn{margin:0}
/* Paiements non terminés */
.mp-pend{margin:0 0 16px;padding:12px;border:1.5px solid #f5b54a;border-radius:var(--r);background:#fffaf0}
.mp-pend-h b{display:block;font-size:15px}.mp-pend-h small{display:block;color:var(--muted);font-size:12.5px;margin:2px 0 6px}
.mp-pend-r{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;align-items:center;padding:10px 0;border-top:1px solid #fde7c2}
.mp-pend-i{font-size:20px}.mp-pend-t b{display:block;font-size:14px}.mp-pend-t small{color:var(--muted);font-size:12.5px}
.mp-pend-a{grid-column:1/-1;display:flex;gap:8px}.mp-pend-a .btn{margin:0;flex:1;text-align:center;justify-content:center}.mp-pend-a form{margin:0;flex:1;display:flex}.mp-pend-a form .btn{width:100%}
.mp-po{margin:12px 0 0;display:flex;flex-direction:column;gap:6px}
.mp-po-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 10px;border-radius:calc(var(--r) * .7);border:1.5px solid #f5b54a;background:#fffaf0}
.mp-po-t{flex:1;min-width:150px}.mp-po-t b{display:block;font-size:13.5px}.mp-po-t small{color:#b54708;font-size:12px}
.mp-po-a{display:flex;gap:6px}.mp-po-a .btn{margin:0}.mp-po-a form{margin:0}
.hp-pend{margin:0 0 14px}

/* ---------- Infos du camping (v28) ---------- */
.if-card{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:0 0 14px;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 10%,var(--card)),var(--card));transition:transform .15s,border-color .15s}
.if-card:hover{border-color:var(--c);transform:translateY(-1px)}
.if-card-wx{display:flex;align-items:center;gap:4px;flex:0 0 auto}.if-card-wx i{font-style:normal;font-size:30px;line-height:1}.if-card-wx b{font-size:22px;font-weight:800}
.if-card-m{flex:1;min-width:0}.if-card-m b{display:block;font-size:15px}
.if-card-m small{display:block;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.if-card-go{font-size:26px;color:var(--c);font-weight:300;line-height:1}
.if-note{background:color-mix(in srgb,var(--c) 9%,var(--card));border-left:4px solid var(--c);border-radius:10px;padding:10px 12px;margin:0 0 14px;font-size:15px}
.if-wx{border-radius:var(--r);padding:16px;margin:0 0 16px;color:#fff;background:linear-gradient(160deg,#3a8fd8,#1d5fa8);box-shadow:0 10px 24px -14px rgba(29,95,168,.8);overflow:hidden}
.if-wx-now{display:flex;align-items:center;gap:12px}
.if-wx-ico{font-size:52px;line-height:1}
.if-wx-t{flex:1;min-width:0}.if-wx-t b{display:block;font-size:44px;font-weight:800;line-height:1}.if-wx-t small{font-size:15px;opacity:.9}
.if-wx-mm{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:15px}
.if-wx-kv{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}
.if-wx-kv span{background:rgba(255,255,255,.17);border-radius:99px;padding:4px 10px;font-size:13px;white-space:nowrap}
.if-wx-kv span.hot{background:#f2994a}
.if-hrs{display:flex;gap:4px;overflow-x:auto;margin:14px -16px 0;padding:0 16px 4px;scrollbar-width:none}
.if-hrs::-webkit-scrollbar{display:none}
.if-hr{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:44px;font-size:13px}
.if-hr small{opacity:.85;font-size:12px}.if-hr i{font-style:normal;font-size:20px}.if-hr em{font-style:normal;font-size:11px;color:#bfe3ff}
.if-days{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:12px;border-top:1px solid rgba(255,255,255,.2);padding-top:12px}
.if-day{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:13px;text-align:center}
.if-day i{font-style:normal;font-size:22px}.if-day small{opacity:.75}.if-day em{font-style:normal;font-size:11px;color:#bfe3ff}
.if-sec{border:1px solid var(--line);border-radius:var(--r);padding:14px;margin:0 0 16px;background:var(--card)}
.if-sec h2{font-size:18px;margin:0 0 10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.if-h3{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:12px 0 6px}
.if-tide{background:linear-gradient(180deg,#eaf6fb,var(--card) 60%)}
.if-tide-now{margin:0 0 6px;font-size:15px}
.if-curve{width:100%;height:auto;display:block;margin:4px 0 10px;overflow:visible}
.if-curve polygon{fill:rgba(45,140,200,.16)}.if-curve polyline{fill:none;stroke:#2d8cc8;stroke-width:2.2}
.if-curve .g{stroke:var(--line);stroke-width:1;stroke-dasharray:2 3}
.if-curve text{font:600 9.5px var(--font);fill:var(--muted)}.if-curve .hr{font-weight:700}
.if-curve .lb{font-size:10px;font-weight:800}.if-curve .lb.hi{fill:#1d6fa5}.if-curve .lb.lo{fill:#a8670f}
.if-curve circle.hi{fill:#2d8cc8}.if-curve circle.lo{fill:#d48a1e}.if-curve circle.now{fill:#fff;stroke:#2d8cc8;stroke-width:2.5}
.if-curve .ax{font-size:8px;font-weight:500}
.if-tides{display:flex;flex-direction:column;gap:8px}
.if-td{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.if-td>b{flex:0 0 100%;font-size:13px;color:var(--muted)}
.if-td span{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-weight:700;font-size:15px;background:var(--card)}
.if-td span i{font-style:normal;font-size:12px;color:#2d8cc8}.if-td span.low i{color:#b7791f}
.if-td span small{font-weight:500;font-size:11.5px;color:var(--muted)}
.if-td span.past{opacity:.45}
.if-tide .if-wx-kv span{background:color-mix(in srgb,#2d8cc8 12%,var(--card));color:var(--ink)}
.if-evs{display:flex;flex-direction:column;gap:6px}
.if-ev{display:grid;grid-template-columns:48px 32px minmax(0,1fr);gap:8px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px 10px}
.if-ev.live{border-color:var(--c);background:color-mix(in srgb,var(--c) 7%,var(--card))}
.if-ev.past{opacity:.5}
.if-ev-t{text-align:center;line-height:1.15}.if-ev-t b{display:block;font-size:15px}.if-ev-t small{font-size:11.5px;color:var(--muted)}
.if-ev-i{font-size:24px;text-align:center}
.if-ev-m{min-width:0}.if-ev-m b{display:block;font-size:15px}.if-ev-m small{display:block;color:var(--muted);font-size:13px}
.if-ev-m em{font-style:normal;font-size:11px;background:var(--c);color:#fff;border-radius:99px;padding:1px 8px;margin-left:4px;vertical-align:2px}
.if-hl{display:flex;flex-direction:column}
.if-hl-r{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.if-hl-r:last-child{border:0}
.if-hl-i{font-size:22px;width:30px;text-align:center}
.if-hl-l{flex:1;min-width:0}.if-hl-l b{display:block;font-size:15px}.if-hl-l small{color:var(--muted);font-size:13px}
.if-open{font-size:12px;font-weight:700;border-radius:99px;padding:2px 9px;background:#f4e4e2;color:var(--err);white-space:nowrap}
.if-open.on{background:#e3f4ea;color:var(--ok)}
.if-sn-h{margin:0 0 4px;font-size:14px}
.if-cats{display:flex;gap:6px;overflow-x:auto;margin:8px 0 2px;padding-bottom:2px}
.if-cats a{flex:0 0 auto;text-decoration:none;border:1px solid var(--line);border-radius:99px;padding:5px 12px;font-size:13px;font-weight:600;color:var(--ink);background:var(--soft)}
.if-menu{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}
.if-mi{display:flex;align-items:baseline;gap:6px;padding:6px 0}
.if-mi>span{min-width:0;flex:0 1 auto}.if-mi b{font-size:15px}.if-mi small{display:block;color:var(--muted);font-size:13px}
.if-mi i{flex:1;border-bottom:1px dotted var(--line);min-width:12px;transform:translateY(-4px)}
.if-mi em{font-style:normal;font-weight:700;white-space:nowrap}
.if-snack .btn{margin-top:8px}
.note-detect{margin-top:10px;background:var(--card)}
/* Paiement Android : étapes (v29) */
.ap-head{text-align:center;margin:4px 0 14px}.ap-head b{font-size:18px}.ap-head small{display:block;color:var(--muted);font-size:13.5px;margin-top:2px}
.ap2{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:10px;counter-reset:none}
.ap2-s{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r);padding:12px;background:var(--card);transition:opacity .2s,border-color .2s}
.ap2-s:not(.on):not(.done){opacity:.6}
.ap2-s.on{border-color:color-mix(in srgb,var(--c) 45%,transparent);box-shadow:0 4px 14px -10px var(--c)}
.ap2-s.done{opacity:.55}.ap2-s.done .ap2-n{background:var(--ok);color:#fff}.ap2-s.done .ap2-n{font-size:0}.ap2-s.done .ap2-n::after{content:'✓';font-size:16px}
.ap2-n{flex:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;background:var(--c);color:#fff;font-size:15px}
.ap2-b{flex:1;min-width:0}.ap2-b>b{display:block;font-size:15.5px;line-height:1.3}.ap2-b>small{display:block;color:var(--muted);font-size:13px;margin:3px 0 0}
.ap2-b .ap-code{margin:8px 0 0}.ap2-b .ap-code small{margin:4px 0 0}
.ap2-b .btn{margin-top:10px}
.ap2-url{display:block;margin-top:6px;font-weight:800;font-size:18px;color:var(--c);word-break:break-all;user-select:all;-webkit-user-select:all}
.ap2-chrome{width:auto!important}
.ap-ok{margin-top:10px;font-weight:700;color:var(--ok);text-align:left}
.ap2-mail{margin-top:8px;font-size:13px;background:color-mix(in srgb,var(--c) 8%,var(--card));border-radius:10px;padding:8px 10px}
.if-coef{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#1d6fa5,#2d8cc8);color:#fff;border-radius:var(--r);padding:10px 14px;margin:0 0 10px}
.if-coef small{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.85;writing-mode:horizontal-tb;max-width:70px;line-height:1.2}
.if-coef b{font-size:44px;font-weight:900;line-height:1}
.if-coef span{display:flex;flex-direction:column;font-weight:800;font-size:15px}.if-coef em{font-style:normal;font-weight:500;font-size:12.5px;opacity:.85}
.if-coef.big{background:linear-gradient(135deg,#b42318,#e0592a)}.if-coef.low{background:linear-gradient(135deg,#475467,#667085)}
.if-curve .cf{font-size:10.5px;font-weight:900;fill:#1d6fa5}
.if-td span u{text-decoration:none;font-size:12px;font-weight:900;background:#1d6fa5;color:#fff;border-radius:6px;padding:0 5px;margin-left:2px}
.if-ars{display:flex;flex-direction:column;gap:6px}
.if-ar{display:flex;gap:10px;align-items:center;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:12px;padding:6px;background:var(--card)}
.if-ar img,.if-ar-i{flex:none;width:58px;height:58px;border-radius:9px;object-fit:cover;background:var(--soft);display:flex;align-items:center;justify-content:center;font-size:24px}
.if-ar-m{min-width:0;flex:1}.if-ar-m b{display:block;font-size:14.5px;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.if-ar-m small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}.if-ar-m em{font-style:normal;font-size:11px;background:var(--c);color:#fff;border-radius:99px;padding:1px 7px}
.if-curve-ref{font-size:11px;text-align:right;margin:-6px 0 8px}
.if-coef small{max-width:none;margin-right:2px}
.if-td span{flex-wrap:wrap}.if-td span small{white-space:nowrap}
/* Carte & services (v29) */
.if-mchips{display:flex;gap:6px;overflow-x:auto;margin:0 -2px 10px;padding:0 2px 2px;scrollbar-width:none}.if-mchips::-webkit-scrollbar{display:none}
.if-mchips button{flex:0 0 auto;border:1px solid var(--line);background:var(--soft);border-radius:99px;padding:6px 12px;font:inherit;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap}
.if-mchips button.on{background:var(--c);border-color:var(--c);color:#fff}
.if-mapbox{height:300px;border-radius:12px;overflow:hidden;border:1px solid var(--line);margin-bottom:10px;background:#e8eef0;z-index:0}
.if-mk{background:none;border:0}.if-mk span{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.3);font-size:18px;border:2px solid #fff}
.if-mk.home span{background:var(--c);font-size:20px;width:38px;height:38px}.if-mk.ev span{background:#fff4d6}
.if-pl{display:flex;flex-direction:column}
.if-pli{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.if-pli:last-child{border:0}
.if-pli-i{width:34px;height:34px;flex:none;border-radius:50%;background:var(--soft);display:flex;align-items:center;justify-content:center;font-size:18px}
.if-pli-m{flex:1;min-width:0}.if-pli-m b{display:block;font-size:14.5px}.if-pli-m small{display:block;color:var(--muted);font-size:12.5px}
.if-pli-h{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.if-pli-a{display:flex;gap:6px}.if-pli-a a{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:17px;background:var(--card)}
/* Agenda (v29) */
.ag-days{display:flex;gap:6px;overflow-x:auto;margin:0 -2px 10px;padding:2px 2px 4px;scrollbar-width:none}.ag-days::-webkit-scrollbar{display:none}
.ag-days button{flex:0 0 auto;min-width:62px;display:flex;flex-direction:column;align-items:center;gap:1px;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:6px 8px;font:inherit;color:var(--ink);cursor:pointer;position:relative}
.ag-days button small{font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap}.ag-days button b{font-size:19px;line-height:1.1}
.ag-days button i{font-style:normal;font-size:10.5px;font-weight:800;background:var(--soft);border-radius:99px;padding:0 6px}
.ag-days button.on{background:var(--c);border-color:var(--c);color:#fff}.ag-days button.on small{color:rgba(255,255,255,.85)}.ag-days button.on i{background:rgba(255,255,255,.25)}
.ag-list{display:flex;flex-direction:column;gap:6px}
.ag-it{display:grid;grid-template-columns:52px 30px minmax(0,1fr) 14px;gap:8px;align-items:center;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:var(--card);font:inherit;color:inherit;cursor:pointer}
.ag-it:hover{border-color:var(--c)}
.ag-it.src-camp{border-left:4px solid var(--c)}.ag-it.src-manual{border-left:4px solid #e09f3e}
.ag-t{text-align:center;line-height:1.15}.ag-t b{display:block;font-size:15px}.ag-t small{font-size:11px;color:var(--muted)}
.ag-i{font-size:22px;text-align:center}
.ag-m{min-width:0}.ag-m b{display:block;font-size:14.5px;line-height:1.25}.ag-m small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.ag-camp{font-style:normal;font-size:10.5px;font-weight:700;background:color-mix(in srgb,var(--c) 14%,var(--card));color:var(--c);border-radius:99px;padding:1px 7px}
.ag-go{color:var(--muted);font-size:20px}
.ag-dlg{border:0;padding:0;border-radius:18px 18px 0 0;width:100%;max-width:560px;margin:auto auto 0;max-height:88vh;box-shadow:0 -10px 40px rgba(0,0,0,.25);background:var(--card);color:var(--ink)}
.ag-dlg::backdrop{background:rgba(0,0,0,.45)}
.ag-dlg-in{position:relative;padding:22px 18px 18px;overflow-y:auto;max-height:88vh}
.ag-x{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;border:0;background:var(--soft);font-size:16px;cursor:pointer;color:var(--ink)}
.ag-d-ico{font-size:40px;line-height:1}
.ag-dlg h3{font-size:20px;margin:8px 34px 12px 0;line-height:1.25}
.ag-d-rows{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:12px}
.ag-d-rows div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);font-size:14px}.ag-d-rows div:last-child{border:0}
.ag-d-rows small{color:var(--muted);font-size:12.5px;font-weight:600}.ag-d-rows span{overflow-wrap:anywhere}
.ag-d-desc{white-space:pre-line;font-size:14px;line-height:1.5;margin:0 0 12px}
/* carte : recherche et regroupement */
.if-mtools{display:flex;flex-direction:column;gap:8px;margin:0 0 8px}
.if-msearch{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:0 10px;background:var(--card)}
.if-msearch input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:15px;padding:11px 0;color:var(--ink)}
.if-msearch input::-webkit-search-cancel-button{display:none}
.if-msearch button{border:0;background:var(--soft);border-radius:50%;width:26px;height:26px;cursor:pointer;color:var(--muted);font-size:13px}
.if-msearch:focus-within{border-color:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 18%,transparent)}
.if-msort{display:flex;background:var(--soft);border-radius:10px;padding:3px}
.if-msort button{flex:1;border:0;background:transparent;border-radius:8px;padding:8px 6px;font:inherit;font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer}
.if-msort button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.if-mg{border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:var(--card);overflow:hidden}
.if-mg summary{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:11px 12px;cursor:pointer;font-weight:700;font-size:14.5px}
.if-mg summary::-webkit-details-marker{display:none}
.if-mg summary::after{content:'▾';margin-left:auto;color:var(--muted);transition:transform .15s}.if-mg[open] summary::after{transform:rotate(180deg)}
.if-mg-n{background:var(--soft);border-radius:99px;padding:1px 8px;font-size:12px;color:var(--muted)}
.if-mg summary small{flex-basis:100%;font-weight:400;font-size:12.5px;color:var(--muted)}
.if-mg .if-pli{padding:8px 12px;border-top:1px solid var(--line);border-bottom:0}
.if-pli-m{cursor:pointer}
.if-mnone{text-align:center;color:var(--muted);padding:14px 0}
.if-mg summary small{order:5}.if-mg summary::after{order:3}
/* animations : semaine complète */
.if-wk{display:flex;gap:6px;overflow-x:auto;margin:0 -2px 10px;padding:2px 2px 4px;scrollbar-width:none}.if-wk::-webkit-scrollbar{display:none}
.if-wk button{flex:0 0 auto;min-width:56px;display:flex;flex-direction:column;align-items:center;gap:1px;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:6px 8px;font:inherit;color:var(--ink);cursor:pointer}
.if-wk button small{font-size:11.5px;color:var(--muted);white-space:nowrap}.if-wk button b{font-size:17px;line-height:1.1}
.if-wk button i{font-style:normal;font-size:11px;background:var(--soft);border-radius:99px;padding:0 7px;color:var(--muted)}
.if-wk button.none{opacity:.55}
.if-wk button.on{background:var(--c);border-color:var(--c);color:#fff}.if-wk button.on small,.if-wk button.on i{color:#fff}.if-wk button.on i{background:rgba(255,255,255,.22)}
.if-wk .if-wk-all{justify-content:center;font-size:17px}
.if-wkd .if-h3 small{font-weight:400;color:var(--muted);font-size:12.5px}
.if-wk-none{margin:4px 0 8px}
/* messages programmés */
.if-msg-promo{border-left-color:#d97706;background:color-mix(in srgb,#f59e0b 12%,var(--card))}
.if-msg-alert{border-left-color:#dc2626;background:color-mix(in srgb,#ef4444 11%,var(--card));font-weight:600}
/* signaler un problème */
.if-rep-f{display:flex;flex-direction:column;gap:10px}
.if-rep-f label{display:flex;flex-direction:column;gap:4px;font-size:13.5px;font-weight:600}
.if-rep-f input[type=text],.if-rep-f input[type=tel],.if-rep-f textarea{font:inherit;font-size:15px;font-weight:400;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--card);color:var(--ink)}
.if-rep-cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.if-rep-cats label{font-weight:500}.if-rep-cats input{position:absolute;opacity:0;pointer-events:none}
.if-rep-cats span{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;border:1px solid var(--line);border-radius:10px;padding:7px 4px;font-size:11.5px;line-height:1.2;cursor:pointer;background:var(--card);min-height:58px;justify-content:center}
.if-rep-cats i{font-style:normal;font-size:20px}
.if-rep-cats input:checked+span{border-color:var(--c);background:color-mix(in srgb,var(--c) 10%,var(--card));box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 30%,transparent)}
.if-rep-ph{position:relative}.if-rep-ph input{position:absolute;inset:0;opacity:0;cursor:pointer}
.if-rep-ph span{display:block;text-align:center;border:1.5px dashed var(--line);border-radius:10px;padding:12px;font-weight:600;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.if-rep-ph.on span{border-color:var(--c);color:var(--ink)}
.if-rep-who{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.if-hp{position:absolute!important;left:-9999px!important;height:1px;width:1px;opacity:0}
.if-rep-ok{background:color-mix(in srgb,#16a34a 12%,var(--card));border-radius:10px;padding:12px;margin-bottom:8px;font-weight:600}
@media (max-width:380px){.if-rep-cats{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* espacement régulier entre les blocs de la page Infos (publicités comprises) */
.if-blk>.partners{margin:0 0 20px}
.if-blk>.partners .sub{margin-top:0}
.if-blk+.if-blk>.partners{margin-top:6px}
