/* Renov Partners — feuille de style partagée (espace partenaire + console admin).
   Design system « Rapport Pro 2026 » : un élément dominant par zone, le mint
   réservé à ce qui coûte ou rapporte, une demande fermée est marquée.
   Mobile-first ; les points de rupture élargissent, jamais l'inverse. */

/* ── 1. Jetons ─────────────────────────────────────────────────────────── */
:root{
  --mint:#7CD7BA; --mint-deep:#54C5A6; --mint-dark:#11705B; --mint-darker:#0C5847;
  --mint-100:#A9E9D6; --mint-50:#EDF8F4; --mint-25:#F6FCFA; --mint-mid:#1E8A6F;
  --ink:#152019; --ink-soft:#3A463F; --muted:#5C655E; --faint:#666E67; --hair:#8A9189;
  --bg:#F1ECE3; --paper:#FFFFFF; --soft:#F7F4EE; --line:#E7E1D7; --line-2:#D9D2C6;
  --amber:#8F5A08; --amber-bg:#FBF2D9; --amber-border:#F0DFA8;
  --red:#9B2C2C; --red-bg:#FBE9E7; --red-border:#F3C9C4;
  --shadow:0 4px 22px rgba(21,32,25,.05); --shadow-lg:0 16px 44px rgba(21,32,25,.09);
  --radius:18px; --radius-sm:12px;
  --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --ring:0 0 0 3.5px rgba(84,197,166,.16);
  --tabbar-h:62px;
  --sat:env(safe-area-inset-top,0px); --sab:env(safe-area-inset-bottom,0px);
}

/* ── 2. Base ───────────────────────────────────────────────────────────── */
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--bg);scroll-behavior:smooth}
body{font-family:var(--font);
  background:radial-gradient(130% 80% at 50% -8%,#FAF7F1 0%,var(--bg) 55%) no-repeat var(--bg);
  color:var(--ink-soft);line-height:1.6;-webkit-font-smoothing:antialiased;
  font-feature-settings:"cv05","ss01";min-height:100vh;overflow-x:hidden}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-size:inherit}
button:disabled{cursor:not-allowed;opacity:.55}
a{color:inherit}
img{max-width:100%}
svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;width:1em;height:1em;flex:none}
input,select,textarea{font-family:inherit;font-size:16px;color:var(--ink)}
::selection{background:var(--mint-100);color:var(--ink)}
:focus-visible{outline:2px solid var(--mint-deep);outline-offset:3px;border-radius:8px}
[hidden]{display:none!important}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.lbl{font-size:.66rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--faint)}
.muted{color:var(--muted)}
.tnum{font-variant-numeric:tabular-nums}
.container{max-width:1120px;margin:0 auto;padding:14px 14px calc(var(--tabbar-h) + var(--sab) + 28px)}
@media (min-width:760px){.container{padding:20px 24px 64px}}

/* ── 3. Composants génériques ──────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:12px 18px;
  background:linear-gradient(135deg,var(--mint-mid),var(--mint-dark));color:#fff;border-radius:14px;
  font-size:.95rem;font-weight:700;letter-spacing:-.01em;text-decoration:none;
  transition:transform .2s,box-shadow .2s,filter .2s;box-shadow:0 6px 18px rgba(17,112,91,.22)}
.btn:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(17,112,91,.3)}
.btn:active{transform:translateY(0)}
.btn:disabled{transform:none;box-shadow:none}
.btn.block{width:100%}
.btn.sm{min-height:44px;padding:8px 14px;font-size:.85rem;border-radius:11px;box-shadow:none}
.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:12px 18px;
  border:1.5px solid var(--line);border-radius:14px;background:var(--soft);color:var(--ink-soft);
  font-size:.92rem;font-weight:700;text-decoration:none;transition:all .18s}
.btn-ghost:hover{border-color:var(--line-2);color:var(--ink);background:#fff}
.btn-ghost.block{width:100%}
.btn-ghost.sm{min-height:44px;padding:8px 14px;font-size:.85rem;border-radius:11px}
.btn-warn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 18px;
  border-radius:14px;font-size:.92rem;font-weight:700;text-decoration:none;
  background:var(--amber-bg);border:1.5px solid var(--amber-border);color:var(--amber);transition:all .18s}
.btn-warn:hover{background:#F8EDD0;border-color:var(--amber)}
.btn-warn.block{width:100%}
.btn-danger{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;
  border-radius:12px;font-size:.88rem;font-weight:700;background:var(--red);color:#fff}
.link{color:var(--mint-dark);font-weight:700;text-decoration:none;border-bottom:1.5px solid var(--mint-100);
  padding-bottom:1px;cursor:pointer;font-size:inherit}
.link.mute{color:var(--muted);border-color:var(--line-2)}

.card{background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}
.card.pad{padding:18px}
@media (min-width:760px){.card.pad{padding:22px 24px}}
.card h2{font-size:1.05rem;font-weight:800;letter-spacing:-.025em;color:var(--ink);display:flex;align-items:center;gap:10px}
.card h2::before{content:'';width:4px;height:18px;border-radius:3px;background:linear-gradient(180deg,var(--mint),var(--mint-dark));flex:none}
.card .sub{font-size:.85rem;color:var(--muted);margin-top:4px;line-height:1.5}
.stack{display:grid;gap:14px}
.stack-16{display:grid;gap:16px}

.chip{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:700;color:var(--mint-dark);
  background:var(--mint-50);border:1px solid var(--mint-100);border-radius:100px;padding:5px 12px;white-space:nowrap}
.chip button{width:24px;height:24px;margin:-4px -6px -4px 0;border-radius:50%;display:flex;align-items:center;
  justify-content:center;color:var(--mint-dark)}
.chip button:hover{background:#fff}
.chip button svg{width:11px;height:11px;stroke-width:2.4}
.chip.mute{color:var(--muted);background:var(--soft);border-color:var(--line-2)}
.chip.warn{color:var(--amber);background:var(--amber-bg);border-color:var(--amber-border)}

.toast{position:fixed;left:50%;bottom:calc(var(--tabbar-h) + var(--sab) + 14px);transform:translate(-50%,140%);
  background:var(--ink);color:#fff;border-radius:14px;padding:13px 21px;font-size:.87rem;font-weight:600;
  box-shadow:var(--shadow-lg);z-index:120;opacity:0;visibility:hidden;pointer-events:none;
  transition:transform .35s cubic-bezier(.2,.9,.3,1),opacity .22s,visibility .22s;
  max-width:calc(100vw - 32px);text-align:center;line-height:1.45}
.toast.on{transform:translate(-50%,0);opacity:1;visibility:visible}
.toast b{color:var(--mint)}
.toast.err{background:var(--red)}
.toast.err b{color:#fff}
@media (min-width:760px){.toast{bottom:26px}}

/* Fenêtres : sur mobile une feuille qui glisse du bas, sur grand écran une modale centrée. */
.scrim{position:fixed;inset:0;background:rgba(21,32,25,.42);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  z-index:100;display:flex;align-items:flex-end;justify-content:center;
  animation:fade .18s ease-out}
.sheet{background:var(--paper);border:1px solid var(--line);border-radius:22px 22px 0 0;box-shadow:var(--shadow-lg);
  width:100%;max-height:calc(100vh - 28px);max-height:calc(100dvh - 28px);overflow-y:auto;overscroll-behavior:contain;
  padding:14px 18px calc(20px + var(--sab));animation:slide .28s cubic-bezier(.2,.9,.3,1);outline:none}
.sheet::before{content:'';display:block;width:40px;height:4px;border-radius:2px;background:var(--line-2);margin:0 auto 12px}
.modal{border-radius:22px;padding:22px 24px;max-width:480px;width:100%;max-height:88vh;overflow-y:auto;
  background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-lg);outline:none;animation:pop .2s ease-out}
.modal.lg{max-width:620px}
@media (min-width:700px){
  .scrim{align-items:center;padding:20px}
  .sheet{border-radius:22px;max-width:520px;max-height:88vh;padding:22px 24px;animation:pop .2s ease-out}
  .sheet.lg{max-width:680px}
  .sheet::before{display:none}
}
@keyframes slide{from{transform:translateY(40px);opacity:.6}to{transform:none;opacity:1}}
@keyframes pop{from{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.modal-head h2{font-size:1.12rem;font-weight:800;letter-spacing:-.03em;color:var(--ink);display:flex;align-items:center;gap:10px;line-height:1.25}
.modal-head h2::before{content:'';width:4px;height:18px;border-radius:3px;background:linear-gradient(180deg,var(--mint),var(--mint-dark));flex:none}
.modal-head p{font-size:.83rem;color:var(--muted);margin-top:4px;margin-left:14px;line-height:1.5}
.x{margin-left:auto;width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  color:var(--faint);flex:none;border:1px solid var(--line);background:var(--soft)}
.x:hover{color:var(--ink);border-color:var(--line-2)}
.x svg{width:14px;height:14px;stroke-width:2.2}
.modal-actions{display:flex;gap:10px;margin-top:18px}
.modal-actions>*{flex:1}
.modal-body p{font-size:.88rem;color:var(--ink-soft);line-height:1.6}
.modal-note{font-size:.8rem;color:var(--muted);line-height:1.55;background:var(--soft);border:1px solid var(--line);
  border-radius:12px;padding:10px 13px;margin-bottom:14px}
.modal-note b{color:var(--ink-soft)}

/* Formulaires */
.field{margin-bottom:14px}
.field>label,.field>.lbl-b{display:block;font-size:.83rem;font-weight:700;color:var(--ink-soft);margin-bottom:6px}
.field input,.field select,.field textarea,.input{width:100%;min-height:46px;padding:11px 13px;border:1.5px solid var(--line);
  border-radius:12px;font-size:16px;background:var(--soft);color:var(--ink);appearance:none;transition:all .18s}
.field textarea{min-height:90px;resize:vertical}
.field select,select.sel{padding-right:38px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%235C655E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center}
.field input:focus,.field select:focus,.field textarea:focus,.input:focus{outline:none;border-color:var(--mint-deep);background-color:#fff;box-shadow:var(--ring)}
.field .hint{font-size:.76rem;color:var(--faint);line-height:1.5;margin-top:6px}
.field-row{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:520px){.field-row{grid-template-columns:1fr 1fr}}
.in-suffix{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:12px;background:var(--soft);overflow:hidden}
.in-suffix input{flex:1;min-width:0;border:none;background:transparent;font-size:16px;font-weight:700;color:var(--ink);
  padding:11px 13px;min-height:46px;font-variant-numeric:tabular-nums}
.in-suffix input:focus{outline:none}
.in-suffix:focus-within{border-color:var(--mint-deep);background:#fff;box-shadow:var(--ring)}
.in-suffix i{font-style:normal;padding:0 12px;color:var(--muted);font-weight:700;font-size:.9rem}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg button{flex:1;min-width:96px;min-height:44px;padding:10px 8px;border:1.5px solid var(--line);border-radius:12px;
  background:var(--soft);font-size:.82rem;font-weight:600;color:var(--ink-soft);transition:all .18s}
.seg button[aria-pressed="true"]{border-color:var(--mint-deep);background:var(--mint-25);color:var(--mint-dark);font-weight:700;box-shadow:var(--ring)}
.check{display:flex;align-items:flex-start;gap:10px;font-size:.86rem;font-weight:600;color:var(--ink-soft);cursor:pointer;line-height:1.45;min-height:44px}
.check input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--mint-dark)}
.sw{position:relative;width:44px;height:26px;flex:none}
.sw input{appearance:none;width:44px;height:26px;border-radius:100px;background:var(--line-2);cursor:pointer;transition:background .18s;margin:0;display:block}
.sw input::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.22);transition:transform .18s}
.sw input:checked{background:var(--mint-dark)}
.sw input:checked::after{transform:translateX(18px)}
.form-err{background:var(--red-bg);border:1px solid var(--red-border);color:var(--red);border-radius:12px;padding:10px 13px;
  font-size:.84rem;font-weight:600;margin-bottom:14px;line-height:1.5}
.form-ok{background:var(--mint-50);border:1px solid var(--mint-100);color:var(--mint-dark);border-radius:12px;padding:10px 13px;
  font-size:.84rem;font-weight:600;margin-bottom:14px;line-height:1.5}

/* États */
.empty{text-align:center;padding:40px 20px;color:var(--muted);font-size:.9rem;background:var(--paper);
  border:1px dashed var(--line-2);border-radius:22px;line-height:1.55}
.empty b{display:block;color:var(--ink);font-size:1rem;font-weight:800;margin-bottom:6px}
.empty .btn,.empty .btn-ghost{margin-top:14px}
.errbox{text-align:center;padding:28px 18px;background:var(--red-bg);border:1px solid var(--red-border);border-radius:18px;color:var(--red);font-size:.9rem;line-height:1.5}
.errbox b{display:block;font-weight:800;margin-bottom:4px}
.errbox .btn-ghost{margin-top:12px;background:#fff}
.skel{position:relative;overflow:hidden;background:var(--soft);border-radius:12px;min-height:14px}
.skel::after{content:'';position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);animation:shimmer 1.3s infinite}
@keyframes shimmer{to{transform:translateX(100%)}}
.skel-card{padding:20px;display:grid;gap:12px}
.skel-card .skel:nth-child(1){width:55%;height:16px}
.skel-card .skel:nth-child(2){width:85%;height:22px}
.skel-card .skel:nth-child(3){width:70%}
.skel-card .skel:nth-child(4){height:64px}
.spinner{width:18px;height:18px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;flex:none}
.spinner.dark{border-color:var(--line-2);border-top-color:var(--mint-dark)}
@keyframes spin{to{transform:rotate(360deg)}}

/* Bandeaux d'information */
.fyi{border:1px solid var(--mint-100);border-radius:14px;padding:12px 14px;
  background:linear-gradient(120deg,var(--mint-50),var(--mint-25) 92%);display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.fyi.warn{border-color:var(--amber-border);background:linear-gradient(120deg,var(--amber-bg),#FEFCF5 92%)}
.fyi.mute{border-color:var(--line-2);background:var(--paper)}
.fyi.promo{border-color:var(--mint-dark);background:linear-gradient(120deg,#0C5847,#11705B 92%)}
.fyi.danger{border-color:var(--red-border);background:var(--red-bg)}
.fyi-ic{width:30px;height:30px;border-radius:9px;background:#fff;border:1px solid var(--mint-100);
  display:flex;align-items:center;justify-content:center;color:var(--mint-dark);flex:none}
.fyi.warn .fyi-ic{border-color:var(--amber-border);color:var(--amber)}
.fyi.danger .fyi-ic{border-color:var(--red-border);color:var(--red)}
.fyi.mute .fyi-ic{border-color:var(--line-2);color:var(--muted)}
.fyi.promo .fyi-ic{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:var(--mint)}
.fyi-ic svg{width:15px;height:15px;stroke-width:1.9}
.fyi-main{flex:1;min-width:0}
.fyi-ti{font-size:.85rem;font-weight:800;color:var(--mint-dark);letter-spacing:-.01em;line-height:1.3}
.fyi.warn .fyi-ti{color:var(--amber)}
.fyi.danger .fyi-ti{color:var(--red)}
.fyi.mute .fyi-ti{color:var(--ink)}
.fyi.promo .fyi-ti{color:#fff}
.fyi-tx{font-size:.8rem;color:var(--ink-soft);font-weight:500;line-height:1.5;overflow-wrap:anywhere}
.fyi.promo .fyi-tx{color:rgba(255,255,255,.85)}
.fyi-link{font-size:.82rem;font-weight:700;color:var(--mint-dark);border-bottom:1.5px solid var(--mint-100);
  padding-bottom:1px;white-space:nowrap;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.fyi.warn .fyi-link{color:var(--amber);border-color:var(--amber-border)}
.fyi.danger .fyi-link{color:var(--red);border-color:var(--red-border)}
.fyi.promo .fyi-link{color:#fff;border-color:rgba(255,255,255,.4)}
.fyi .x{width:44px;height:44px}
.fyi.promo .x{color:#fff;background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.35)}

/* ── 4. Coquille ───────────────────────────────────────────────────────── */
.top-bar{display:flex;align-items:center;gap:12px;padding:calc(2px + var(--sat)) 0 12px}
.logo{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);font-size:1rem;font-weight:800;letter-spacing:-.025em;min-width:0}
.logo i{width:30px;height:30px;border-radius:9px;font-style:normal;background:linear-gradient(135deg,var(--mint-mid),var(--mint-dark));
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:.82rem;font-weight:800;flex:none}
.logo em{font-style:normal;color:var(--muted);font-weight:600}
.logo .co{display:none;font-size:.78rem;font-weight:600;color:var(--muted);margin-left:6px;padding-left:12px;border-left:1px solid var(--line-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
@media (min-width:760px){.logo .co{display:inline}}
.wallet{margin-left:auto;display:flex;align-items:center;gap:10px;background:var(--paper);border:1px solid var(--line);
  border-radius:14px;padding:4px 4px 4px 12px;box-shadow:var(--shadow);text-decoration:none;color:inherit;
  transition:border-color .25s,background .25s;min-height:46px}
.wallet.low{border-color:var(--amber-border);background:var(--amber-bg)}
.wallet.low .lbl{color:var(--amber)}
.wallet b{display:block;font-size:1.05rem;font-weight:800;color:var(--ink);letter-spacing:-.03em;line-height:1.15;font-variant-numeric:tabular-nums}
.wallet .lbl{line-height:1.1}
.wallet-amt{display:flex;flex-direction:column;justify-content:center;min-height:44px;text-decoration:none;color:inherit;border-radius:10px}
.wallet-amt .lbl{display:block;white-space:nowrap}
.wallet .go{padding:8px 14px;border-radius:10px;background:var(--mint-dark);color:#fff;font-size:.84rem;font-weight:700;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
.wallet .go:hover{background:var(--mint-darker)}
.page-head{padding:2px 0 14px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.68rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--mint-dark);margin-bottom:6px}
.eyebrow .dot{width:5px;height:5px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 3px var(--mint-50)}
h1{font-size:1.5rem;font-weight:800;letter-spacing:-.032em;color:var(--ink);line-height:1.12;text-wrap:balance}
@media (min-width:760px){h1{font-size:1.72rem}.page-head{padding:6px 0 18px}}
.page-head p{font-size:.88rem;color:var(--muted);margin-top:6px;line-height:1.5}

/* Navigation : pilule centrée sur grand écran (sous l'en-tête, puis dans l'en-tête dès 1080 px), onglets fixes en bas sur mobile. */
.nav-top{display:none}
@media (min-width:760px){
  .nav-top{order:3;flex-basis:100%;display:flex;justify-content:center;gap:3px;margin:6px 0 4px}
  .nav-top a{padding:9px 18px;border-radius:11px;font-size:.87rem;font-weight:600;color:var(--muted);text-decoration:none;
    transition:background .18s,color .18s,box-shadow .18s;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;min-height:44px;
    background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow)}
  .nav-top a+a{margin-left:5px}
  .nav-top a svg{width:16px;height:16px;stroke-width:1.9}
  .nav-top a:hover{background:var(--soft);color:var(--ink)}
  .nav-top a[aria-current="page"]{background:var(--mint-dark);border-color:var(--mint-dark);color:#fff;box-shadow:0 6px 16px rgba(17,112,91,.22)}
  .top-bar{flex-wrap:wrap;padding-bottom:16px}
}
@media (min-width:1080px){
  .top-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
  .nav-top{order:0;flex-basis:auto;margin:0;padding:4px;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
  .nav-top a{background:none;border:none;box-shadow:none;min-height:40px;padding:8px 15px}
  .nav-top a+a{margin-left:2px}
  .nav-top a[aria-current="page"]{box-shadow:none}
  .wallet{justify-self:end}
}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:90;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:4px 4px calc(4px + var(--sab));min-height:calc(var(--tabbar-h) + var(--sab))}
.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:54px;
  font-size:.64rem;font-weight:700;color:var(--faint);text-decoration:none;border-radius:12px;letter-spacing:.01em;position:relative}
.tabbar a svg{width:22px;height:22px;stroke-width:1.8}
.tabbar a[aria-current="page"]{color:var(--mint-dark)}
.tabbar a[aria-current="page"]::before{content:'';position:absolute;top:2px;width:22px;height:3px;border-radius:2px;background:var(--mint-dark)}
.tabbar .badge{position:absolute;top:6px;right:calc(50% - 22px);min-width:16px;height:16px;padding:0 4px;border-radius:100px;
  background:var(--amber);color:#fff;font-size:.6rem;font-weight:800;display:flex;align-items:center;justify-content:center}
@media (min-width:760px){.tabbar{display:none}}
#banners{display:grid;gap:10px;margin-bottom:14px}
#banners:empty{display:none}

/* ── 5. Connexion ──────────────────────────────────────────────────────── */
.auth{max-width:440px;margin:6vh auto 0;padding:26px 22px}
.auth .logo{justify-content:center;margin-bottom:18px}
.auth h1{font-size:1.4rem;text-align:center}
.auth .sub{text-align:center;margin-bottom:20px}
.auth .foot{font-size:.78rem;color:var(--faint);text-align:center;margin-top:18px;line-height:1.55}
.auth .sent{text-align:center;padding:10px 0}
.auth .sent .ic{width:56px;height:56px;border-radius:18px;background:var(--mint-50);border:1px solid var(--mint-100);color:var(--mint-dark);
  display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.auth .sent .ic svg{width:26px;height:26px;stroke-width:1.8}
.auth .sent b{display:block;font-size:1.05rem;color:var(--ink);font-weight:800;margin-bottom:6px}
.auth .sent p{font-size:.88rem;color:var(--muted);line-height:1.55}

/* ── 6. Flux des demandes ──────────────────────────────────────────────── */
/* Liste en une colonne, largeur de lecture ~880 px sur grand écran, pleine largeur sur mobile. */
.feed-wrap{max-width:880px;margin:0 auto}
.feed-tools{display:flex;gap:8px;align-items:center;margin-bottom:12px}
.vchips{flex:1;min-width:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 0}
.vchips::-webkit-scrollbar{display:none}
.vchip{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:7px 13px;border-radius:12px;font-size:.84rem;font-weight:600;
  color:var(--muted);background:var(--paper);border:1px solid var(--line);white-space:nowrap;transition:background .18s,color .18s}
.vchip:hover{background:var(--soft);color:var(--ink)}
.vchip[aria-pressed="true"]{background:var(--mint-dark);color:#fff;border-color:var(--mint-dark)}
.vchip.locked{color:var(--faint);background:var(--soft);border-style:dashed}
.vchip.locked svg{width:12px;height:12px}
.vchip .n{font-size:.68rem;font-weight:800;background:var(--soft);color:var(--muted);padding:0 6px;border-radius:100px;font-variant-numeric:tabular-nums;line-height:1.6}
.vchip[aria-pressed="true"] .n{background:rgba(255,255,255,.22);color:#fff}
.f-toggle{flex:none;display:inline-flex;align-items:center;gap:7px;font-size:.84rem;font-weight:700;color:var(--ink-soft);background:var(--paper);
  border:1px solid var(--line);border-radius:12px;padding:9px 13px;box-shadow:var(--shadow);min-height:44px;white-space:nowrap}
.f-toggle svg{width:15px;height:15px}
.f-toggle .cnt{font-size:.7rem;font-weight:800;background:var(--mint-dark);color:#fff;padding:1px 7px;border-radius:100px}
.f-toggle[aria-expanded="true"]{border-color:var(--mint-100);background:var(--mint-25);color:var(--mint-dark)}
.refresh{flex:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--paper);color:var(--muted);
  display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow)}
.refresh svg{width:17px;height:17px}
.refresh.spin svg{animation:spin .8s linear infinite}
.fchips{display:flex;gap:8px;flex-wrap:wrap;margin:-2px 0 12px}
.fchips:empty{display:none}
.feed{display:grid;gap:14px;grid-template-columns:1fr}
@media (min-width:760px){.feed{gap:16px}}
.feed-count{font-size:.79rem;color:var(--faint);margin-bottom:10px}
.seg.wrap button{flex:0 1 auto;min-width:0}

.lead{padding:16px 16px 18px;transition:box-shadow .2s,border-color .2s;display:flex;flex-direction:column;gap:0}
@media (min-width:760px){.lead{padding:20px 22px 22px}}
.lead:hover{box-shadow:var(--shadow-lg)}
.lead.bought{border-color:var(--mint-100)}
.lead.gone{border-color:var(--line-2);box-shadow:none;background:repeating-linear-gradient(135deg,#fff 0 14px,#FCFAF7 14px 28px)}
.lead.gone:hover{box-shadow:none}
.lead.gone .lead-ico{filter:grayscale(1);opacity:.75}
.lead.compact{padding:14px 16px}
@media (min-width:760px){.lead.compact{padding:14px 22px}}
.lead.compact .lead-head{padding-bottom:0;border-bottom:none}
.gone-line{font-size:.85rem;color:var(--muted);margin-top:8px;line-height:1.5}
.gone-line b{color:var(--ink-soft);font-weight:700}
.lead-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--line)}
.lead-title{display:flex;align-items:center;gap:10px;font-size:.98rem;font-weight:800;color:var(--ink);letter-spacing:-.02em;min-width:0;flex-wrap:wrap}
.lead-cat{white-space:nowrap}
.lead-title .places{padding:4px 10px 4px 8px;border-radius:100px;background:var(--soft);border:1px solid var(--line);font-size:.74rem}
.lead-title .places.tight{background:var(--amber-bg);border-color:var(--amber-border)}
.lead-title .places.none{background:var(--soft);border-style:dashed}
.lead-ico{width:34px;height:34px;border-radius:11px;background:var(--mint-50);border:1px solid var(--mint-100);display:flex;align-items:center;justify-content:center;font-size:1rem;flex:none}
.lot{font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--mint-dark);background:var(--mint-50);border:1px solid var(--mint-100);padding:3px 8px;border-radius:7px;white-space:nowrap}
.lot.whole{color:#fff;background:var(--mint-dark);border-color:var(--mint-dark)}
.new{font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--mint-dark);padding:3px 8px;border-radius:6px}
.stamp{display:inline-flex;align-items:center;gap:6px;font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--ink-soft);padding:4px 10px;border-radius:8px;white-space:nowrap}
.stamp svg{width:12px;height:12px;stroke-width:2.2}
.places{display:inline-flex;align-items:center;gap:7px;font-size:.77rem;font-weight:600;color:var(--muted);white-space:nowrap}
.places.tight{color:var(--amber);font-weight:700}
.pips{display:inline-flex;gap:3px}
.pip{width:6px;height:6px;border-radius:50%;background:var(--hair);display:block}
.pip.on{background:var(--mint-deep)}
.places.tight .pip.on{background:var(--amber)}
.places{flex:none;line-height:1.3}
.places.none{color:var(--faint)}
.places.sm{font-size:.7rem;gap:5px}
.places.sm .pip{width:5px;height:5px}
.lead-meta{width:100%;font-size:.79rem;color:var(--faint);line-height:1.4}
.lead-meta .commune{font-weight:700;color:var(--ink);font-size:.84rem}
.lead-meta b{color:var(--mint-dark);font-weight:700}
.simtag{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;color:var(--mint-dark);background:var(--mint-25);border:1px solid var(--mint-100);padding:4px 10px;border-radius:100px;white-space:nowrap;text-decoration:none}
.simtag svg{width:13px;height:13px;stroke-width:2}
.simtag.link{min-height:44px;margin:-8px 0;cursor:pointer;background:var(--mint-50)}
.simtag.link:hover{background:#fff;border-color:var(--mint-deep)}
.sim-link{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:700;color:var(--mint-dark);min-height:44px;padding:0 4px;text-decoration:none;border-radius:8px}
.sim-link svg{width:15px;height:15px}
.sim-link:hover{background:var(--mint-25)}
.lead-meta i{font-style:normal;color:var(--amber);font-weight:700}
@media (min-width:760px){.lead-meta{width:auto;margin-left:auto;white-space:nowrap}}
/* Corps : projet à gauche, prix et bouton à droite (en dessous sur mobile). */
.lead-body{padding-top:14px;display:grid;gap:16px}
@media (min-width:780px){.lead-body{grid-template-columns:minmax(0,1fr) 268px;gap:26px;align-items:start}}
.lead-main{min-width:0}
.proj{font-size:1.1rem;font-weight:800;color:var(--ink);letter-spacing:-.025em;line-height:1.28;overflow-wrap:anywhere}
.proj-sub{font-size:.85rem;color:var(--muted);margin-top:3px;line-height:1.5;overflow-wrap:anywhere}
.figs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.figs.n1{grid-template-columns:1fr}
@media (min-width:600px){.figs{gap:10px}.figs.n3{grid-template-columns:repeat(3,1fr)}.figs.n4{grid-template-columns:repeat(4,1fr)}}
.fig{background:var(--soft);border:1px solid var(--line);border-radius:13px;padding:11px 13px;min-width:0}
.fig-v{font-size:1.05rem;font-weight:800;color:var(--ink);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:2px;line-height:1.25;overflow-wrap:anywhere}
.fig-c{font-size:.73rem;color:var(--faint);font-weight:500;margin-top:2px;line-height:1.4}
.ctx{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.situ{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:800;padding:6px 12px;border-radius:9px;letter-spacing:-.01em;white-space:nowrap}
.situ::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.85}
.situ.compromis,.situ.proprietaire,.situ.societe{background:var(--mint-50);color:var(--mint-dark);border:1px solid var(--mint-100)}
.situ.acheteur{background:var(--amber-bg);color:var(--amber);border:1px solid var(--amber-border)}
.situ.inconnue{background:var(--soft);color:var(--muted);border:1px solid var(--line-2)}
.tag{display:inline-flex;align-items:center;font-size:.76rem;font-weight:600;color:var(--muted);background:var(--soft);border:1px solid var(--line);border-radius:9px;padding:6px 10px;white-space:nowrap}
/* Chantier découpé : le choix est dans la carte, la ligne achetable en évidence. */
.scopes{margin-top:14px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--soft)}
.scopes>.lbl{padding:10px 13px 6px;display:block}
.scope{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 13px;border-top:1px solid var(--line)}
.scope.buy{background:#fff;box-shadow:inset 3px 0 0 var(--mint-dark)}
.scope.hors{opacity:.6}
.scope.full{opacity:.55}
.scope.past{opacity:.7}
.scope.past .rad{border-style:dashed}
.scope.mine{background:var(--mint-50)}
.scope .mark{width:16px;height:16px;flex:none;display:flex;align-items:center;justify-content:center;color:var(--faint)}
.scope .mark svg{width:13px;height:13px}
.scope .rad{width:15px;height:15px;border-radius:50%;border:2px solid var(--line-2);display:block}
.scope .tick{width:16px;height:16px;border-radius:50%;background:var(--mint-dark);display:flex;align-items:center;justify-content:center}
.scope .tick svg{width:9px;height:9px;stroke:#fff;stroke-width:3.4}
.scope .txt{min-width:0;flex:1}
.scope .nm-row{display:flex;align-items:center;flex-wrap:wrap;gap:3px 8px}
.scope .nm{display:block;font-size:.84rem;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.scope .vl{display:block;font-size:.73rem;color:var(--faint);margin-top:1px;line-height:1.4}
.scope .rt{margin-left:auto;text-align:right;white-space:nowrap;flex:none}
.scope .pr{display:block;font-size:.9rem;font-weight:800;color:var(--mint-dark);font-variant-numeric:tabular-nums}
.scope .pr s{font-weight:500;color:var(--faint);font-size:.75rem;margin-right:4px}
.scope.full .pr{color:var(--muted)}
.scope .pl{font-size:.71rem;color:var(--muted);margin-top:1px;display:flex;align-items:center;gap:6px;justify-content:flex-end}
.scope .note{font-size:.74rem;font-weight:700;color:var(--faint)}
.scope .got{font-size:.76rem;font-weight:800;color:var(--mint-dark)}
.scope-note{font-size:.74rem;color:var(--faint);line-height:1.5;padding:9px 13px;border-top:1px solid var(--line)}
@media (max-width:480px){.scope .rt{white-space:normal;max-width:44%}.scope .pl{flex-wrap:wrap}}
/* Colonne de droite : prix, places, un bouton. */
.right-col{display:flex;flex-direction:column;gap:10px}
.price{padding:15px 16px;background:radial-gradient(125% 130% at 0% 0%,var(--mint-50) 0%,#fff 72%);border:1px solid var(--mint-100);border-radius:var(--radius);text-align:center}
.price-v{font-size:2rem;font-weight:800;color:var(--mint-dark);line-height:1;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.price-v s{font-size:.9rem;font-weight:600;color:var(--faint);margin-left:8px;letter-spacing:-.02em}
.price-l{font-size:.78rem;color:var(--muted);margin-top:7px;font-weight:500}
.price-promo{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:.72rem;font-weight:800;color:var(--mint-dark);background:#fff;border:1px solid var(--mint-100);padding:3px 10px;border-radius:100px;max-width:100%;white-space:normal;text-align:left}
.done{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px;border-radius:14px;background:var(--mint-50);border:1px solid var(--mint-100);color:var(--mint-dark);font-size:.88rem;font-weight:700}
.done svg{width:15px;height:15px}
.closed{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border-radius:14px;background:var(--soft);border:1.5px solid var(--line-2);color:var(--ink-soft);font-size:.86rem;font-weight:700;text-align:center;line-height:1.4}
.closed svg{width:15px;height:15px;flex:none}
.fine{font-size:.75rem;color:var(--faint);line-height:1.5;text-align:center}
.fine.left{text-align:left;margin-top:8px}
.fine a{color:var(--mint-dark);font-weight:700;text-decoration:none;border-bottom:1.5px solid var(--mint-100)}
/* Bloc contact sur la carte. Verrouillé : lignes factices floutées (jamais une donnée réelle) sous un cadenas qui lance l'achat. */
.contact-box .rows{display:grid;gap:9px}
.contact-box>.lbl{display:block;margin-bottom:10px}
.contact-box.locked{position:relative;overflow:hidden;background:var(--soft);border-color:var(--line);padding:12px 14px 14px;min-height:150px}
.contact-box.locked .rows{filter:blur(5px);opacity:.5;user-select:none;-webkit-user-select:none;pointer-events:none}
.contact-box.locked .crow b{color:var(--muted)}
.contact-box.own{border-color:var(--mint-100);background:linear-gradient(180deg,var(--mint-25),#fff 60%)}
.contact-box.own .quick{margin-top:2px}
.contact-box .sim-link{margin-top:-2px}
.crow{display:flex;align-items:baseline;gap:10px;font-size:.84rem;min-width:0}
.crow span{font-size:.72rem;color:var(--faint);width:70px;flex:none;font-weight:600}
.crow b{font-weight:700;color:var(--ink);min-width:0;overflow-wrap:anywhere;line-height:1.4}
.crow a{color:var(--mint-dark);text-decoration:none;border-bottom:1.5px solid var(--mint-100)}
.seal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:14px;pointer-events:none;
  background:linear-gradient(180deg,rgba(247,244,238,0) 0%,rgba(247,244,238,.55) 40%,rgba(247,244,238,.55) 60%,rgba(247,244,238,0) 100%)}
.unlock{pointer-events:auto;display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:10px 14px 10px 12px;border-radius:14px;width:100%;max-width:340px;
  background:linear-gradient(135deg,var(--mint-mid),var(--mint-dark));color:#fff;font-size:.88rem;font-weight:700;letter-spacing:-.01em;
  box-shadow:0 8px 22px rgba(17,112,91,.28);transition:transform .2s,box-shadow .2s;text-align:left}
.unlock:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(17,112,91,.34)}
.unlock-ic{width:30px;height:30px;border-radius:10px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;flex:none}
.unlock-ic svg{width:15px;height:15px;stroke-width:2.1}
.unlock-t{line-height:1.25}
.unlock-p{display:none;font-size:.8rem;font-weight:800;color:var(--mint);background:rgba(255,255,255,.14);padding:3px 9px;border-radius:100px;white-space:nowrap;flex:none}
.unlock:hover .unlock-p,.unlock:focus-visible .unlock-p{display:inline-flex}
.unlock.warn{background:var(--amber-bg);color:var(--amber);border:1.5px solid var(--amber-border);box-shadow:var(--shadow)}
.unlock.warn .unlock-ic{background:#fff}
.unlock.warn .unlock-p{color:var(--amber);background:#fff}
.unlock.static{background:#fff;color:var(--muted);border:1px solid var(--line-2);box-shadow:var(--shadow);cursor:default}
.unlock.static .unlock-ic{background:var(--soft);color:var(--faint)}
.open-detail{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700;color:var(--mint-dark);min-height:44px;padding:0 4px;margin-top:4px;text-decoration:none}
.open-detail svg{width:14px;height:14px}
.open-detail.back{margin:0 0 10px}
.lead.detail{box-shadow:var(--shadow)}

/* Confirmation d'achat */
.cfm-lead{display:flex;align-items:center;gap:12px;background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:14px}
.cfm-lead .lead-ico{width:38px;height:38px}
.cfm-t{font-size:.92rem;font-weight:800;color:var(--ink);letter-spacing:-.01em;line-height:1.3}
.cfm-s{font-size:.79rem;color:var(--muted);margin-top:1px;line-height:1.4}
.led{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.led-r{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:11px 14px;font-size:.88rem;color:var(--muted)}
.led-r+.led-r{border-top:1px solid var(--line)}
.led-r b{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.led-r.promo span,.led-r.promo b{color:var(--mint-dark)}
.led-r.after{background:var(--mint-50)}
.led-r.after span{color:var(--mint-dark);font-weight:700}
.led-r.after b{color:var(--mint-dark);font-size:1.05rem}
.led-r.neg b{color:var(--amber)}
.cfm-note{font-size:.79rem;color:var(--faint);line-height:1.55;margin-top:12px;text-align:center}
.gets{display:grid;gap:6px;margin:12px 0 2px}
.gets div{display:flex;align-items:center;gap:9px;font-size:.84rem;color:var(--ink-soft);font-weight:600}
.gets svg{width:15px;height:15px;color:var(--mint-dark);flex:none}
.contact-box{border:1px solid var(--mint-100);border-radius:14px;padding:14px;background:#fff;display:grid;gap:10px}
.quick{display:flex;gap:8px}
.quick svg{width:14px;height:14px;margin-right:6px}
.quick a,.quick button{flex:1;display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:700;min-height:44px;padding:8px 6px;
  border-radius:11px;text-decoration:none;border:1.5px solid var(--line);background:var(--soft);color:var(--ink-soft);transition:all .18s}
.quick a:hover,.quick button:hover{background:#fff;border-color:var(--mint-100);color:var(--mint-dark)}
.quick .primary{background:linear-gradient(135deg,var(--mint-mid),var(--mint-dark));color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(17,112,91,.2)}
.quick .primary:hover{color:#fff;border-color:transparent;filter:brightness(1.06)}

/* ── 7. Mes leads ──────────────────────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}
@media (min-width:760px){.stats{gap:12px}}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:12px 12px;box-shadow:var(--shadow);min-width:0}
.stat .lbl{display:block;font-size:.62rem;line-height:1.3}
.stat b{display:block;font-size:1.15rem;font-weight:800;color:var(--ink);letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.2;margin-top:4px;overflow-wrap:anywhere}
@media (min-width:760px){.stat{padding:12px 14px}.stat b{font-size:1.3rem}.stat .lbl{font-size:.66rem}}
.stat.mint b{color:var(--mint-dark)}
.stat small{display:block;font-size:.72rem;color:var(--faint);margin-top:2px;line-height:1.4}
/* Une carte = un contact : nom, téléphone et e-mail d'abord, le projet ensuite, le suivi à droite. */
.mine{padding:16px}
@media (min-width:760px){.mine{padding:18px 22px 20px}}
.mine-grid{display:grid;gap:14px}
@media (min-width:780px){.mine-grid{grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}}
.mine-main{min-width:0}
.mine-who{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mine-name{font-size:1.12rem;font-weight:800;color:var(--ink);letter-spacing:-.025em;line-height:1.25;overflow-wrap:anywhere}
.mine-lines{display:flex;flex-wrap:wrap;gap:2px 16px;margin-top:4px;font-size:.9rem;color:var(--ink-soft)}
.mine-lines a{color:var(--mint-dark);font-weight:700;text-decoration:none;border-bottom:1.5px solid var(--mint-100);min-height:44px;display:inline-flex;align-items:center;overflow-wrap:anywhere}
.mine-lines span{min-height:36px;display:inline-flex;align-items:center;overflow-wrap:anywhere}
.mine-main>.sim-link{margin-top:2px}
.mine-proj{display:flex;gap:10px;align-items:flex-start;margin-top:10px;padding-top:12px;border-top:1px solid var(--line);min-width:0}
.mine-proj>div{min-width:0}
.mine-proj b{display:block;font-size:.95rem;font-weight:800;color:var(--ink);letter-spacing:-.01em;line-height:1.3;overflow-wrap:anywhere}
.mine-proj .proj-sub{display:block;margin-top:2px}
.mine-proj small{display:block;font-size:.78rem;color:var(--faint);margin-top:3px;line-height:1.45}
.mine-side{display:flex;flex-direction:column;gap:10px;min-width:0}
.st-wrap>.lbl{margin-bottom:6px;display:block}
.stpills{display:flex;flex-wrap:wrap;gap:6px}
.stp{min-height:44px;padding:8px 13px;border-radius:100px;border:1.5px solid var(--line);background:var(--soft);font-size:.8rem;font-weight:700;color:var(--ink-soft);transition:all .16s;white-space:nowrap}
.stp:hover{border-color:var(--line-2);background:#fff}
.stp[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.stp.todo[aria-pressed="true"]{background:var(--amber);border-color:var(--amber)}
.stp.quoted[aria-pressed="true"],.stp.won[aria-pressed="true"]{background:var(--mint-dark);border-color:var(--mint-dark)}
.stp.lost[aria-pressed="true"]{background:var(--muted);border-color:var(--muted)}
.via{font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--mint-dark);background:var(--mint-50);border:1px solid var(--mint-100);padding:2px 7px;border-radius:6px;white-space:nowrap}

/* ── 8. Règles ─────────────────────────────────────────────────────────── */
.rule{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.rule:last-child{border-bottom:none}
.rule-main{flex:1;min-width:0}
.rule-t{font-size:.9rem;font-weight:800;color:var(--ink)}
.rule.off .rule-t{color:var(--faint)}
.rule-s{font-size:.79rem;color:var(--muted);margin-top:2px;line-height:1.5}
.rule-s b{font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.rule-acts{display:flex;gap:6px;align-items:center;flex:none}
.rule-edit{font-size:.8rem;font-weight:700;color:var(--mint-dark);min-height:44px;padding:0 10px;border-radius:10px}
.rule-edit:hover{background:var(--mint-50)}
.rule-del{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--faint);border:1px solid var(--line);background:var(--soft);transition:all .16s}
.rule-del:hover{color:var(--amber);border-color:var(--amber-border);background:var(--amber-bg)}
.rule-del svg{width:14px;height:14px}
.rule.confirm{background:var(--amber-bg);border-radius:12px;padding:14px;border-bottom:none;margin:6px 0;align-items:center}
.rule.confirm .rule-t{color:var(--amber)}
.rule-cta{display:flex;gap:8px;width:100%}
@media (min-width:600px){.rule-cta{width:auto;margin-left:auto}}
.rule-cta button{flex:1;min-height:42px;padding:8px 14px;border-radius:10px;font-size:.82rem;font-weight:700;white-space:nowrap}
.rule-cta .yes{background:var(--amber);color:#fff}
.rule-cta .no{border:1.5px solid var(--line-2);color:var(--ink-soft);background:#fff}
.rule-empty{border:1px dashed var(--line-2);border-radius:14px;padding:22px 18px;text-align:center}
.rule-empty b{display:block;font-size:.98rem;font-weight:800;color:var(--ink);margin-bottom:6px}
.rule-empty p{font-size:.84rem;color:var(--muted);line-height:1.55;margin-bottom:14px}
.how{display:grid;gap:10px}
.how div{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;color:var(--ink-soft);line-height:1.5}
.how .n{width:24px;height:24px;border-radius:8px;background:var(--mint-50);border:1px solid var(--mint-100);color:var(--mint-dark);font-size:.72rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none;margin-top:1px}

/* ── 9. Solde ──────────────────────────────────────────────────────────── */
.balance-hero{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.balance-hero .big{font-size:2.2rem;font-weight:800;color:var(--mint-dark);letter-spacing:-.045em;line-height:1;font-variant-numeric:tabular-nums}
.balance-hero .big.low{color:var(--amber)}
.balance-hero .side{font-size:.8rem;color:var(--muted);line-height:1.5}
.balance-hero .side b{color:var(--ink-soft)}
.packs{display:grid;gap:10px}
@media (min-width:600px){.packs{grid-template-columns:repeat(3,1fr)}}
.pack{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;text-align:left;min-height:64px;padding:12px 14px;
  border:1.5px solid var(--line);border-radius:13px;background:var(--soft);transition:all .18s;position:relative}
.pack[aria-pressed="true"]{border-color:var(--mint-deep);background:var(--mint-25);box-shadow:var(--ring)}
.pack-v{font-size:1.08rem;font-weight:800;color:var(--ink);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.pack-d{font-size:.76rem;color:var(--muted)}
.pack-b{font-size:.7rem;font-weight:800;color:var(--mint-dark);background:var(--mint-50);border:1px solid var(--mint-100);padding:3px 9px;border-radius:100px;white-space:nowrap}
.paymeans{font-size:.75rem;color:var(--faint);line-height:1.5;margin-top:12px;text-align:center}
.ledger{display:grid}
.ledger-r{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:11px 0;border-bottom:1px solid var(--line);align-items:center}
.ledger-r:last-child{border-bottom:none}
.ledger-r .k{font-size:.86rem;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ledger-r .m{font-size:.76rem;color:var(--faint);line-height:1.4;overflow-wrap:anywhere;grid-column:1}
.ledger-r .a{font-size:.95rem;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;grid-row:1/3;grid-column:2;text-align:right}
.ledger-r .a.plus{color:var(--mint-dark)}
.ledger-r .a.minus{color:var(--ink-soft)}
.kind{font-size:.64rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;padding:2px 7px;border-radius:6px;background:var(--soft);border:1px solid var(--line-2);color:var(--muted)}
.kind.recharge,.kind.bonus{background:var(--mint-50);border-color:var(--mint-100);color:var(--mint-dark)}
.kind.remboursement{background:var(--amber-bg);border-color:var(--amber-border);color:var(--amber)}
.pay-r{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.pay-r:last-child{border-bottom:none}
.pay-r .d{font-size:.8rem;color:var(--faint);min-width:80px}
.pay-r .t{flex:1;min-width:0;font-size:.86rem;font-weight:700;color:var(--ink)}
.pay-r .t small{display:block;font-size:.74rem;color:var(--muted);font-weight:500}
.pay-r .s{font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:6px;background:var(--soft);color:var(--muted)}
.pay-r .s.paid{background:var(--mint-50);color:var(--mint-dark)}
.pay-r .s.failed{background:var(--red-bg);color:var(--red)}
.pay-r a{font-size:.8rem}
.tabs2{display:flex;gap:4px;background:var(--soft);padding:4px;border-radius:12px;margin-bottom:12px}
.tabs2 button{flex:1;min-height:44px;border-radius:9px;font-size:.82rem;font-weight:700;color:var(--muted)}
.tabs2 button[aria-pressed="true"]{background:#fff;color:var(--ink);box-shadow:var(--shadow)}

/* ── 10. Réglages ──────────────────────────────────────────────────────── */
.notif-row{padding:14px 0;border-bottom:1px solid var(--line);display:grid;gap:10px}
.notif-row:last-child{border-bottom:none}
.notif-row .head{display:flex;align-items:center;gap:10px}
.notif-row .head b{font-size:.92rem;font-weight:800;color:var(--ink)}
.notif-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.notif-grid .field{margin:0}
.notif-grid .field>label{font-size:.72rem;color:var(--faint);text-transform:uppercase;letter-spacing:.1em;font-weight:700}
.notif-grid .save{grid-column:1/-1}
.user-r{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.user-r:last-child{border-bottom:none}
.user-r .av{width:36px;height:36px;border-radius:11px;background:var(--mint-50);border:1px solid var(--mint-100);color:var(--mint-dark);font-weight:800;font-size:.8rem;display:flex;align-items:center;justify-content:center;flex:none;text-transform:uppercase}
.user-r .who{flex:1;min-width:0}
.user-r .who b{display:block;font-size:.88rem;color:var(--ink);overflow-wrap:anywhere}
.user-r .who small{display:block;font-size:.74rem;color:var(--faint)}
.u-notif{display:flex;align-items:center;gap:9px;flex-basis:100%;padding-left:46px;font-size:.78rem;font-weight:600;color:var(--ink-soft);cursor:pointer;min-height:32px}
.u-notif .sw input:disabled{opacity:.55;cursor:progress}
@media (min-width:700px){.u-notif{flex-basis:auto;padding-left:0;margin-left:auto;order:-1}.user-r .av{order:-3}.user-r .who{order:-2}}
.role{font-size:.64rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;padding:2px 7px;border-radius:6px;background:var(--soft);border:1px solid var(--line-2);color:var(--muted)}
.role.owner{background:var(--mint-50);border-color:var(--mint-100);color:var(--mint-dark)}
.kv{display:grid;grid-template-columns:1fr;gap:8px}
@media (min-width:560px){.kv{grid-template-columns:1fr 1fr}}
.kv div{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:10px 13px;min-width:0}
.kv div b{display:block;font-size:.9rem;color:var(--ink);font-weight:700;margin-top:2px;overflow-wrap:anywhere}
.section-title{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.section-title h2{flex:1;min-width:0}

/* ── 11. Contrat (page publique) ───────────────────────────────────────── */
.contract-wrap{max-width:720px;margin:0 auto;padding:24px 16px 60px}
.contract-wrap .card.pad{padding:24px 20px}
@media (min-width:640px){.contract-wrap{padding:40px 24px 80px}.contract-wrap .card.pad{padding:34px 36px}}
.contract-summary{font-size:.92rem;color:var(--ink-soft);line-height:1.65;white-space:pre-line;margin:16px 0}
.contract-summary p{margin-bottom:10px}
.bonus{display:flex;align-items:center;gap:12px;background:linear-gradient(120deg,var(--mint-50),var(--mint-25));border:1px solid var(--mint-100);border-radius:14px;padding:12px 14px;margin:16px 0}
.bonus b{font-size:1.2rem;color:var(--mint-dark);letter-spacing:-.03em;white-space:nowrap}
.bonus span{font-size:.84rem;color:var(--ink-soft);line-height:1.45}

/* Bandeaux sur petit écran : icône · texte · fermer sur une ligne, le lien d'action en dessous */
@media (max-width:599px){
  .fyi{display:grid;grid-template-columns:30px minmax(0,1fr) 44px;align-items:start;column-gap:10px;row-gap:8px}
  .fyi-link{grid-column:2/4;justify-self:start}
  .fyi .x{margin-left:0;grid-column:3;grid-row:1}
}

/* ── 12. Abonnements (ajouts 019 / 020) ─────────────────────────── */
.subs{display:grid;gap:10px;margin-top:12px}
.sub-r{display:grid;gap:8px;background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.sub-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sub-head b{font-size:.92rem;font-weight:800;color:var(--ink);margin-right:2px}
.sub-credit{font-size:1.02rem;font-weight:800;color:var(--mint-dark);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.sub-meta{font-size:.78rem;color:var(--muted)}
.sub-meta b{color:var(--ink-soft)}
.pay-r .t small.pay-disc{color:var(--mint-dark);font-weight:700}
.pay-r .t small.pay-ref{color:var(--amber);font-weight:700}
/* Grille des notifications : cinq champs (e-mail, calme de, à, max, enregistrer) */
@media (min-width:600px){.notif-grid{grid-template-columns:1fr 1fr 1fr;align-items:end}.notif-grid .save{grid-column:auto;align-self:end}}
@media (min-width:860px){.notif-grid{grid-template-columns:1.6fr .9fr .9fr .9fr auto}}

/* ── Ajouts 021 : pied de page, crédits à durée de vie, verrous ─────────── */
.app-foot{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;margin-top:28px;padding-top:14px;border-top:1px solid var(--line);font-size:.76rem;color:var(--faint);line-height:1.5}
.app-foot a{color:var(--mint-dark);font-weight:700;text-decoration:none;border-bottom:1.5px solid var(--mint-100);min-height:44px;display:inline-flex;align-items:center}
.app-foot a:hover{border-color:var(--mint-dark)}
.exp-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--amber);margin-left:6px;vertical-align:middle;box-shadow:0 0 0 3px var(--amber-bg);cursor:help}
.validity-note{font-size:.74rem;color:var(--faint);line-height:1.5;margin-top:8px}
.lots{display:grid;gap:8px;margin-top:12px}
.lot-r{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.lot-r .k{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.84rem;font-weight:700;color:var(--ink)}
.lot-r .k small{font-size:.74rem;font-weight:500;color:var(--faint);overflow-wrap:anywhere}
.lot-r .v{font-size:.76rem;color:var(--muted);line-height:1.45;grid-column:1}
.lot-r .v.soon{color:var(--amber);font-weight:700}
.lot-r .a{grid-row:1/3;grid-column:2;text-align:right;font-size:.9rem;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.lot-r .a small{display:block;font-size:.72rem;font-weight:500;color:var(--faint)}
.lot-bar{grid-column:1/3;height:4px;border-radius:2px;background:var(--line);overflow:hidden}
.lot-bar i{display:block;height:100%;background:var(--mint-dark);border-radius:2px}
.kind.abonnement{background:var(--mint-50);border-color:var(--mint-100);color:var(--mint-dark)}
.lock-box{display:flex;gap:10px;align-items:flex-start;background:var(--amber-bg);border:1px solid var(--amber-border);border-radius:14px;padding:12px 14px;font-size:.84rem;color:var(--amber);line-height:1.5}
.lock-box svg{width:16px;height:16px;flex:none;margin-top:2px;stroke:currentColor;fill:none;stroke-width:1.9}
.lock-box b{display:block;font-weight:800}
.lock-box small{display:block;font-size:.76rem;color:var(--ink-soft);font-weight:500;margin-top:2px;overflow-wrap:anywhere}
.lock-box a{color:var(--amber);font-weight:700;text-decoration:none;border-bottom:1.5px solid var(--amber-border)}
.lock-line{display:flex;gap:8px;align-items:flex-start;font-size:.78rem;color:var(--muted);line-height:1.5;margin-top:10px}
.lock-line svg{width:14px;height:14px;flex:none;margin-top:2px;stroke:var(--amber);fill:none;stroke-width:1.9}
.lock-line a{color:var(--mint-dark);font-weight:700;text-decoration:none;border-bottom:1.5px solid var(--mint-100)}
.support-line{text-align:left;margin-top:2px}


/* ── Refonte espace partenaire (09/2026) : solde replié, réglages en 4 cartes ── */
.balance-hero{justify-content:space-between}
.balance-main{min-width:0;flex:1}
.balance-hero>.btn{flex:none;min-width:150px}
@media (max-width:520px){.balance-hero>.btn{width:100%}}
details.fold{padding:0}
details.fold>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:16px 18px;cursor:pointer;min-height:56px;border-radius:22px}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary h2{flex:none}
details.fold>summary .fold-hint{margin-left:auto;font-size:.76rem;color:var(--faint);text-align:right;line-height:1.35;min-width:0}
details.fold>summary>svg{width:16px;height:16px;flex:none;color:var(--faint);transform:rotate(90deg);transition:transform .2s}
details.fold[open]>summary>svg{transform:rotate(-90deg)}
details.fold .fold-body{padding:14px 18px 18px;border-top:1px solid var(--line)}
@media (min-width:760px){details.fold>summary{padding:18px 24px}details.fold .fold-body{padding:16px 24px 22px}}
@media (max-width:480px){details.fold>summary .fold-hint{display:none}}
.fold-sep{height:1px;background:var(--line);margin:16px 0}
.hist-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.hist-tools .tabs2{flex:1;min-width:220px;margin:0}
.lots{margin-top:12px}
.subs{margin-top:8px}
.assist{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:12px;font-size:.82rem}
.session-line{display:flex;gap:10px 14px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:.84rem;color:var(--muted);line-height:1.5}
.session-line b{color:var(--ink-soft);overflow-wrap:anywhere}
.input.ro{display:flex;align-items:center;color:var(--muted)}
.kv div .fchips{margin:0}
.kv div .fine{margin-top:6px}

/* ── 14. Suivi d'un lead acheté : statut, montant signé, note ───────── */
.follow{display:flex;flex-direction:column;gap:8px}
.follow>.lbl{display:block}
.follow .field.follow-f{margin:2px 0 0}
.follow .field label{font-size:.8rem}
.follow textarea{min-height:64px;font-size:16px;line-height:1.45}
.follow-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}
.follow-foot .upd{font-size:.72rem;color:var(--faint);line-height:1.4}
.follow-foot .btn-ghost.sm{flex:none}

/* ── 15. Recharge : une seule fenêtre (feuille sur mobile, modale centrée sur ordinateur) ── */
.sheet.recharge{max-height:calc(100vh - 8px);max-height:calc(100dvh - 8px)}
@media (min-width:700px){.sheet.recharge{max-width:540px;max-height:92vh}}
.modal-head p b{color:var(--ink);font-weight:800}
.rc{display:flex;flex-direction:column;gap:12px}
.rc .field{margin:0}
.rc .check{margin:0}
.rc .validity-note{margin:0}
.rc .paymeans{margin-top:0}
.rc-miss{display:flex;align-items:flex-start;gap:9px;font-size:.86rem;color:var(--amber);background:var(--amber-bg);border:1px solid var(--amber-border);border-radius:12px;padding:10px 12px;line-height:1.45}
.rc-miss svg{width:16px;height:16px;flex:none;margin-top:2px}
.rc-miss b{color:var(--amber);font-weight:800}
.rc-packs{grid-template-columns:1fr 1fr}
@media (min-width:600px){.rc-packs{grid-template-columns:1fr 1fr}}
.rc-packs .pack{min-height:64px;justify-content:center}
.rc-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rc-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 6px 0 0;font-size:.86rem;font-weight:700;color:var(--mint-dark)}
.rc-back svg{width:16px;height:16px}
.rc-sum{font-size:.9rem;color:var(--muted);text-align:right}
.rc-sum small{display:block;font-size:.74rem;font-weight:700;color:var(--mint-dark)}
.rc-stripe{min-height:320px;border-radius:14px}
.rc-wait{display:flex;align-items:center;justify-content:center;gap:10px;font-size:.86rem;color:var(--muted);min-height:120px}
.rc-wait.big{min-height:200px}
.rc-demo{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;border:1.5px dashed var(--amber-border);border-radius:14px;background:var(--amber-bg)}
.rc-demo b{color:var(--ink);font-size:.98rem}
.rc-demo p{font-size:.84rem;color:var(--ink-soft);line-height:1.5}
.rc-ok{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:12px 4px 4px}
.rc-ok-ic{width:52px;height:52px;border-radius:50%;background:var(--mint-50);border:1px solid var(--mint-100);color:var(--mint-dark);display:flex;align-items:center;justify-content:center}
.rc-ok-ic svg{width:24px;height:24px;stroke-width:2.6}
.rc-ok.wait .rc-ok-ic{background:var(--amber-bg);border-color:var(--amber-border);color:var(--amber)}
.rc-ok b{font-size:1.08rem;color:var(--ink)}
.rc-ok p{font-size:.9rem;color:var(--ink-soft);line-height:1.5;max-width:380px}
.rc-transfer{white-space:pre-line}
.rc .modal-actions{margin-top:4px}
button.fyi-link{background:none;min-height:44px;cursor:pointer;font-family:inherit}
.top-bar .logo{min-height:44px}
.balance-hero .side .link{display:inline-flex;align-items:center;min-height:44px;margin:-12px 0;vertical-align:middle}
