[hidden]{display:none!important}
/* polices du site satidigital.fr, servies par l'Espace SATI lui-même (aucun appel extérieur) */
@font-face{font-family:"Urbanist";font-style:normal;font-weight:400 800;font-display:swap;src:url("/fonts/urbanist.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url("/fonts/albert-sans.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bleu:#55A9DD;--bleu-fonce:#1D6395;--bleu-survol:#4A9CD1;--bleu-pale:#E4F1FA;--encre:#111;--texte:#222;--gris:#5a5a5a;--fond:#F5F0E6;--papier:#FFFCF5;--bois:#E9E0CC;--filet:#DCD2BE;--ok:#2E7D4F;--ok-pale:#E3F2E8;--alerte:#A5471B;--alerte-pale:#F8E8DC;
--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--bar:polygon(0 0,100% 0,calc(100% - 9px) 100%,0 100%);--r:14px;--ombre:0 1px 0 rgba(17,17,17,.04),0 6px 18px -10px rgba(17,17,17,.25)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--serif);font-size:18px;line-height:1.5;color:var(--texte);background-color:var(--fond);background-image:linear-gradient(rgba(29,99,149,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(29,99,149,.06) 1px,transparent 1px);background-size:28px 28px;min-height:100vh;-webkit-tap-highlight-color:transparent}
h1,h2,h3{color:var(--encre);line-height:1.2;margin:0}
h1{font-size:clamp(1.7rem,4vw,2.4rem)}h2{font-size:clamp(1.35rem,3vw,1.7rem)}h3{font-size:1.1rem}
p{margin:.4em 0}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--bleu-fonce)}
.mono{font-family:var(--mono);font-size:.82em;letter-spacing:.02em}
.muted{color:var(--gris)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--bleu-fonce);outline-offset:2px;border-radius:6px}

/* en-tête */
.top{display:flex;align-items:center;gap:14px;padding:12px max(18px,env(safe-area-inset-left));background:var(--papier);border-bottom:1px solid var(--filet);position:sticky;top:0;z-index:20}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--encre);font-weight:700;font-size:1.15rem}
.brand img,.logo{height:54px;width:auto;display:block;filter:brightness(.62) saturate(1.5) contrast(1.15)}
.nav{display:flex;gap:4px;margin-left:10px}
.nav a{padding:10px 16px;border-radius:999px;text-decoration:none;color:var(--texte);font-weight:600;position:relative}
.nav a.on{background:var(--bleu-pale);color:var(--bleu-fonce)}
.cnt{display:inline-block;min-width:22px;height:22px;line-height:22px;text-align:center;border-radius:999px;background:var(--alerte);color:#fff;font-size:.78rem;margin-left:6px;padding:0 6px}
.who{color:var(--gris);text-decoration:none;font-size:.9rem}
.top .sp{flex:1}
.top .who{font-size:.9rem;color:var(--gris)}
.bar-deco{height:6px;background:var(--bleu);clip-path:var(--bar);width:120px}
.wrap{max-width:1040px;margin:0 auto;padding:22px 18px 140px}
.wrap.narrow{max-width:720px}

/* boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 24px;border:2px solid var(--encre);background:var(--papier);color:var(--encre);border-radius:12px;font-weight:600;cursor:pointer;text-decoration:none;font-size:1rem;transition:transform .08s,background .15s,box-shadow .15s;box-shadow:3px 3px 0 var(--encre)}
.btn:hover{background:var(--bleu-pale)}
.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--encre)}
.btn.primary{background:var(--bleu);border-color:var(--encre)}
.btn.primary:hover{background:var(--bleu-survol)}
.btn.big{min-height:68px;font-size:1.2rem;padding:16px 32px}
.btn.ghost{box-shadow:none;border-color:var(--filet);background:transparent}
.btn.ghost:hover{border-color:var(--encre);background:var(--papier)}
.btn.small{min-height:42px;padding:6px 16px;font-size:.92rem;box-shadow:2px 2px 0 var(--encre)}
.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}
.link{background:none;border:0;padding:6px;color:var(--bleu-fonce);text-decoration:underline;cursor:pointer;font-size:.95rem}

/* cartes */
.card{background:var(--papier);border:1.5px solid var(--filet);border-radius:var(--r);padding:20px;box-shadow:var(--ombre)}
.card+.card{margin-top:16px}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.title{margin:6px 0 4px}
.title::after{content:"";display:block;height:6px;width:84px;background:var(--bleu);clip-path:var(--bar);margin-top:10px}
.lead{color:var(--gris);margin:.8em 0 1.4em}

/* formulaires */
.field{display:flex;flex-direction:column;gap:6px}
.field label,.lbl{font-weight:600;font-size:.95rem;color:var(--encre)}
.field input,.field select,.field textarea{min-height:52px;padding:10px 14px;border:1.5px solid var(--filet);border-radius:10px;background:#fff;font-size:1.05rem;width:100%}
.field textarea{min-height:90px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--bleu-fonce);outline:3px solid rgba(85,169,221,.35)}
.field .hint{font-size:.85rem;color:var(--gris)}
.field.err input{border-color:var(--alerte)}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{min-height:48px;padding:8px 18px;border:1.5px solid var(--filet);background:#fff;border-radius:999px;cursor:pointer;font-size:1rem}
.chip[aria-pressed=true]{background:var(--bleu);border-color:var(--encre);font-weight:600}
.seg{display:inline-flex;border:1.5px solid var(--encre);border-radius:12px;overflow:hidden}
.seg button{border:0;background:#fff;min-height:48px;padding:8px 18px;cursor:pointer}
.seg button+button{border-left:1.5px solid var(--encre)}
.seg button[aria-pressed=true]{background:var(--bleu);font-weight:600}
.seg{max-width:100%}
@media (max-width:380px){.seg button{flex:1 1 auto;padding:8px 9px;font-size:.92rem}}
.switch{display:flex;gap:14px;align-items:flex-start;padding:14px;border:1.5px solid var(--filet);border-radius:12px;background:#fff;cursor:pointer;width:100%;text-align:left}
.switch .knob{flex:none;width:46px;height:28px;border-radius:999px;background:var(--filet);position:relative;transition:background .15s;margin-top:2px}
.switch .knob::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.3)}
.switch[aria-pressed=true]{border-color:var(--encre)}
.switch[aria-pressed=true] .knob{background:var(--bleu-fonce)}
.switch[aria-pressed=true] .knob::after{transform:translateX(18px)}
.switch small{display:block;color:var(--gris);font-size:.85rem;line-height:1.35}

/* étapes */
.steps{display:flex;gap:6px;margin:0 0 18px;padding:0;list-style:none}
.steps li{flex:1;text-align:center;font-size:.8rem;color:var(--gris);position:relative;padding-top:14px}
.steps li::before{content:"";position:absolute;top:0;left:0;right:3px;height:6px;background:var(--filet);clip-path:var(--bar)}
.steps li.done::before{background:var(--bleu-fonce)}.steps li.cur::before{background:var(--bleu)}
.steps li.cur{color:var(--encre);font-weight:700}
.steps li.done{cursor:pointer}

/* barre de total collante */
.dock{position:fixed;left:0;right:0;bottom:0;background:var(--papier);border-top:2px solid var(--encre);padding:12px max(18px,env(safe-area-inset-left)) calc(12px + env(safe-area-inset-bottom));z-index:30;box-shadow:0 -8px 24px -12px rgba(17,17,17,.3)}
.dock .in{max-width:1040px;margin:0 auto;display:flex;gap:16px;align-items:center;justify-content:space-between}
.dock .tot{line-height:1.15}
.dock .tot b{font-size:1.7rem;color:var(--encre);font-variant-numeric:tabular-nums}
.dock .tot span{display:block;font-size:.85rem;color:var(--gris)}

/* cartes de choix */
.pick{position:relative;text-align:left;background:var(--papier);border:1.5px solid var(--filet);border-radius:var(--r);padding:16px 16px 14px;cursor:pointer;display:flex;flex-direction:column;gap:6px;min-height:128px;width:100%;transition:border-color .15s,box-shadow .15s,transform .08s}
.pick:hover{border-color:var(--bleu-fonce)}
.pick[aria-pressed=true]{border-color:var(--encre);box-shadow:3px 3px 0 var(--bleu);background:#fff}
.pick .nm{font-weight:700;color:var(--encre);padding-right:34px}
.pick .ds{font-size:.88rem;color:var(--gris);line-height:1.35;flex:1}
.pick .pr{font-family:var(--mono);font-size:.95rem;color:var(--bleu-fonce);font-weight:700}
.pick .tick{position:absolute;top:12px;right:12px;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--filet);display:grid;place-items:center;background:#fff;font-size:.9rem}
.pick[aria-pressed=true] .tick{background:var(--bleu);border-color:var(--encre)}
.pick[aria-pressed=true] .tick::after{content:"✓";font-weight:700}
.formule{border-width:2px;min-height:150px}
.formule .nm{font-size:1.3rem}
.sect{margin:28px 0 10px;display:flex;align-items:center;gap:10px}
.sect h3{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bleu-fonce);font-family:var(--mono)}
.sect::after{content:"";flex:1;height:1px;background:var(--filet)}
.badge{display:inline-block;font-family:var(--mono);font-size:.72rem;padding:3px 9px;border-radius:999px;background:var(--bleu-pale);color:var(--bleu-fonce);letter-spacing:.04em}
.badge.ok{background:var(--ok-pale);color:var(--ok)}.badge.warn{background:var(--alerte-pale);color:var(--alerte)}.badge.gray{background:var(--bois);color:var(--gris)}

/* tableau de bord */
.hero{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:22px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:22px}
.stat{background:var(--papier);border:1.5px solid var(--filet);border-radius:var(--r);padding:14px 16px}
.stat b{display:block;font-size:1.8rem;color:var(--encre);font-variant-numeric:tabular-nums}
.stat span{font-size:.85rem;color:var(--gris)}
.list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.item{display:flex;gap:14px;align-items:center;background:var(--papier);border:1.5px solid var(--filet);border-radius:var(--r);padding:14px 16px;cursor:pointer;text-align:left;width:100%}
.item:hover{border-color:var(--bleu-fonce)}
.item .main{flex:1;min-width:0}
.item .main b{display:block;color:var(--encre);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .amt{font-family:var(--mono);font-weight:700;color:var(--encre);white-space:nowrap}
.empty{text-align:center;padding:40px 16px;color:var(--gris)}

/* devis */
.recap{width:100%;border-collapse:collapse}
.recap td{padding:10px 0;border-bottom:1px solid var(--filet);vertical-align:top}
.recap td:last-child{text-align:right;font-family:var(--mono);white-space:nowrap;padding-left:14px}
.recap .sub{display:block;font-size:.82rem;color:var(--gris);font-family:var(--serif)}
.recap .disc td{color:var(--ok)}
.totals{margin-top:14px;background:var(--bleu-pale);border:1.5px solid var(--bleu-fonce);border-radius:12px;padding:14px 16px}
.totals .t{display:flex;justify-content:space-between;gap:14px;padding:4px 0}
.totals .t.big{font-size:1.35rem;font-weight:700;color:var(--encre)}
.totals .t span:last-child{font-family:var(--mono);white-space:nowrap}
.note{border-left:5px solid var(--bleu-fonce);background:var(--papier);padding:12px 16px;border-radius:0 12px 12px 0;font-size:.95rem}
.note.warn{border-color:var(--alerte);background:var(--alerte-pale)}
.note.ok{border-color:var(--ok);background:var(--ok-pale)}

/* signature */
.sigbox{border:2px dashed var(--bleu-fonce);border-radius:14px;background:#fff;position:relative;touch-action:none}
.sigbox canvas{display:block;width:100%;height:210px;touch-action:none;cursor:crosshair}
.sigbox .ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--filet);font-size:1.3rem;pointer-events:none}
.sigbox .base{position:absolute;left:5%;right:5%;bottom:48px;height:1px;background:var(--filet);pointer-events:none}
.sigpad{display:grid;gap:10px}
.sigmode{justify-self:start;max-width:100%}
.sigmode button{min-height:40px;padding:6px 14px;font-size:.92rem}
.sigbox.tp canvas{cursor:none}
.sigbox canvas:focus{outline:none}
.sigbox.tp:focus-within{border-style:solid}
.sigbox .pen{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;border:2px solid var(--bleu-fonce);background:#fff;pointer-events:none}
.sigbox .pen.down{background:#111;border-color:#111;width:8px;height:8px;left:-4px;top:-4px}
.sighint{font-size:.9rem;color:var(--gris);min-height:2.6em}
.sighint:empty{display:none}
.otp{display:flex;gap:8px}
.otp input{width:100%;max-width:58px;min-height:66px;text-align:center;font-size:1.7rem;font-family:var(--mono);border:1.5px solid var(--encre);border-radius:10px;padding:0;background:#fff}
.check{display:flex;gap:14px;align-items:flex-start;padding:12px 4px;cursor:pointer}
.check input{width:26px;height:26px;flex:none;margin-top:2px;accent-color:var(--bleu-fonce)}
.stepno{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--bleu);border:2px solid var(--encre);font-weight:700;margin-right:10px;font-family:var(--mono);font-size:.95rem}
.lock{opacity:.45;pointer-events:none}
.done-big{text-align:center;padding:30px 10px}
.done-big .ring{width:92px;height:92px;border-radius:50%;background:var(--ok-pale);border:3px solid var(--ok);display:grid;place-items:center;margin:0 auto 18px;font-size:3rem;color:var(--ok);animation:pop .5s ease}
@keyframes pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{padding:6px 0 6px 20px;position:relative;font-size:.92rem;border-left:2px solid var(--filet);margin-left:6px}
.timeline li::before{content:"";position:absolute;left:-6px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--bleu);border:2px solid var(--papier)}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:110px;background:var(--encre);color:#fff;padding:12px 20px;border-radius:999px;z-index:60;font-size:.95rem;max-width:90vw}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.login .card{max-width:420px;width:100%}
.login .brand{margin-bottom:10px}
.errmsg{color:var(--alerte);font-size:.92rem;min-height:1.3em;margin:.5em 0}
.spin{display:inline-block;width:18px;height:18px;border:3px solid rgba(17,17,17,.2);border-top-color:var(--encre);border-radius:50%;animation:rot .7s linear infinite}
@keyframes rot{to{transform:rotate(360deg)}}
@media (max-width:640px){.brand{white-space:nowrap;font-size:1rem}.brand img{height:34px;width:34px}.top{gap:8px}.top .btn.small{padding:4px 12px;min-height:38px}.dock .bt{display:none}.dock .in{gap:10px}.dock .btn.big{min-height:60px;font-size:1.05rem;padding:10px 14px;white-space:nowrap}.dock .btn.ghost{min-width:52px;padding:10px}.dock .tot span{font-size:.75rem}body{font-size:17px}.dock .tot b{font-size:1.4rem}.btn.big{width:100%}.hero .btn{width:100%}.steps li{font-size:0}.steps li.cur{font-size:.8rem}.top .who{display:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media print{.top,.dock{display:none}}

.qlabel{font-weight:700;color:var(--encre);margin-bottom:10px}
.pick.rec:not([aria-pressed=true]){border-style:dashed;border-color:var(--bleu-fonce)}
.recap .why{color:var(--texte);font-size:.88rem;margin-top:4px}
.inc{margin-top:6px;font-family:var(--serif)}.inc summary{cursor:pointer;color:var(--bleu-fonce);font-size:.82rem}.inc ul{margin:.3em 0 0;padding-left:1.1em;font-size:.82rem;color:var(--gris)}
.leadsbanner{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;color:inherit;border-color:var(--alerte);margin-bottom:16px}
.item.lead{flex-wrap:wrap}.item.lead .btn{flex:none}
.due{display:block;font-size:.88rem;color:var(--gris)}.due.hot{color:var(--alerte);font-weight:700}
.contacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.contacts .btn{min-height:60px}
.kv>div{padding:3px 0;word-break:break-word}
.stat.wide{grid-column:1/-1}
.sheetback{position:fixed;inset:0;background:rgba(17,17,17,.45);display:flex;align-items:flex-end;justify-content:center;z-index:50}
.sheet{background:var(--papier);width:100%;max-width:560px;border-radius:18px 18px 0 0;padding:20px 20px calc(24px + env(safe-area-inset-bottom));max-height:90vh;overflow:auto;border:2px solid var(--encre);border-bottom:0}
.sheet h2{font-size:1.25rem}.sheet input,.sheet textarea{width:100%;min-height:52px;padding:10px 14px;border:1.5px solid var(--filet);border-radius:10px;background:#fff;font-size:1.05rem}
@media (min-width:700px){.sheetback{align-items:center}.sheet{border-radius:18px;border-bottom:2px solid var(--encre)}}
@media (max-width:640px){.brand img,.logo{height:42px}.nav a{padding:8px 10px}}

/* en-tête : logo · navigation · menu du compte */
.top{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px 14px}
.top .nav{margin:0;justify-content:center}
.acct{position:relative;justify-self:end}
.avatar{width:46px;height:46px;border-radius:50%;border:2px solid var(--encre);background:var(--bleu);font-weight:700;font-family:var(--mono);cursor:pointer;box-shadow:2px 2px 0 var(--encre)}
.avatar:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--encre)}
.menu{position:absolute;right:0;top:calc(100% + 8px);min-width:240px;background:var(--papier);border:2px solid var(--encre);border-radius:14px;padding:8px;box-shadow:4px 4px 0 var(--encre);z-index:40}
.menu-id{display:flex;flex-direction:column;gap:2px;padding:8px 10px 10px;border-bottom:1px solid var(--filet);margin-bottom:6px}
.menu-id .badge{align-self:flex-start;margin-top:4px}
.menu a,.menu button{display:block;width:100%;text-align:left;padding:12px 10px;border:0;background:none;border-radius:8px;color:var(--texte);text-decoration:none;cursor:pointer;font-size:1rem}
.menu a:hover,.menu button:hover{background:var(--bleu-pale)}
@media (max-width:720px){
  .top{grid-template-columns:1fr auto;padding-top:8px;padding-bottom:6px}
  .top .nav{grid-column:1/-1;grid-row:2;justify-content:stretch;overflow-x:auto;gap:4px;margin:0 -4px;padding-bottom:2px}
  .top .nav a{flex:1;text-align:center;white-space:nowrap}
  .brand img,.logo{height:40px}
}

.resbig .big{font-size:2.4rem;font-weight:700;color:var(--encre);line-height:1.1;font-variant-numeric:tabular-nums}
.rbar{position:relative;height:10px;background:var(--bois);border-radius:6px;margin-top:8px;min-width:140px}
.rbar .rr{position:absolute;top:0;bottom:0;background:var(--bleu);opacity:.5;border-radius:6px}
.rbar .rm{position:absolute;top:-3px;width:4px;height:16px;background:var(--bleu-fonce);border-radius:2px}
input[type=range]{width:100%;accent-color:var(--bleu-fonce);height:34px}

/* simulateur : carte de France */
.fmap-wrap,.fmap{position:relative;width:100%;height:420px;border:2px solid var(--encre);border-radius:16px;overflow:hidden;background:var(--fond);touch-action:none;box-shadow:3px 3px 0 var(--encre)}
.fmap-canvas{position:absolute;left:0;top:0;width:100%;height:100%;display:block;cursor:grab;outline:none;touch-action:none}
.zonecard{min-width:0}
.fmap-canvas:focus-visible{outline:3px solid var(--bleu-fonce);outline-offset:-3px}
.fmap-canvas.grab{cursor:grabbing}
.fmap-ctl{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:6px}
.fmap-ctl button{width:42px;height:42px;border-radius:12px;border:2px solid var(--encre);background:var(--papier);font-size:1.25rem;font-weight:700;cursor:pointer;box-shadow:2px 2px 0 var(--encre);line-height:1}
.fmap-ctl button:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--encre)}
.fmap-credit{position:absolute;left:10px;bottom:6px;font-size:.7rem;color:var(--gris);background:rgba(245,240,230,.8);padding:1px 6px;border-radius:6px;pointer-events:none}
.zonecard .searchwrap{position:relative;margin:2px 0 10px}
.zonecard .searchwrap input{width:100%;min-height:56px;padding:10px 16px;border:2px solid var(--encre);border-radius:14px;background:#fff;font-size:1.15rem}
.suggest{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--papier);border:2px solid var(--encre);border-radius:14px;box-shadow:4px 4px 0 var(--encre);list-style:none;margin:0;padding:6px;z-index:30;max-height:320px;overflow:auto}
.suggest li{padding:12px 12px;border-radius:10px;cursor:pointer}
.suggest li:hover,.suggest li.on{background:var(--bleu-pale)}
.radiusbox{margin-top:14px;display:grid;gap:10px}
.radius-out{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}
.radius-out .rv{font-family:var(--mono);font-weight:700;font-size:1.9rem;color:var(--encre);font-variant-numeric:tabular-nums}
.dial{width:100%;height:44px;-webkit-appearance:none;appearance:none;background:transparent;accent-color:var(--bleu-fonce)}
.dial::-webkit-slider-runnable-track{height:12px;border-radius:8px;background:linear-gradient(90deg,var(--bleu-pale),var(--bleu));border:2px solid var(--encre)}
.dial::-webkit-slider-thumb{-webkit-appearance:none;width:34px;height:34px;margin-top:-13px;border-radius:50%;background:var(--bleu);border:3px solid var(--encre);box-shadow:2px 2px 0 var(--encre);cursor:grab}
.dial::-moz-range-track{height:12px;border-radius:8px;background:linear-gradient(90deg,var(--bleu-pale),var(--bleu));border:2px solid var(--encre)}
.dial::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:var(--bleu);border:3px solid var(--encre);cursor:grab}
.reachbox:empty{display:none}.reachbox{margin-top:14px;padding-top:14px;border-top:1px dashed var(--filet)}
.reachgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.bigpop{font-size:1.8rem;font-variant-numeric:tabular-nums;color:var(--bleu-fonce)}
.tops{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.topc{background:var(--bleu-pale);border-radius:999px;padding:3px 12px;font-size:.88rem}.topc em{font-style:normal;color:var(--gris);font-family:var(--mono);font-size:.78rem}
.emptyres{text-align:center;padding:34px 16px}.big-ico{font-size:2.4rem}
.skeleton{height:340px;border-radius:16px;background:linear-gradient(90deg,var(--bois),var(--papier),var(--bois));background-size:200% 100%;animation:sk 1.2s linear infinite}
@keyframes sk{to{background-position:-200% 0}}
@media (max-width:640px){.fmap-wrap,.fmap{height:340px}}
.cover{margin-top:14px;display:grid;gap:6px}
.gauge{height:14px;border-radius:8px;background:var(--bois);border:2px solid var(--encre);overflow:hidden}
.gauge span{display:block;height:100%;background:linear-gradient(90deg,var(--bleu),var(--bleu-fonce));transition:width .35s ease}
.gauge span.full{background:linear-gradient(90deg,#e0a45e,var(--alerte))}
@media (max-width:640px){.fmap-ctl button{width:36px;height:36px;font-size:1.05rem}.fmap-ctl{right:6px;top:6px;gap:4px}}

.item .trash{flex:none;width:44px;height:44px;border-radius:12px;border:1.5px solid var(--filet);background:var(--papier);cursor:pointer;font-size:1.1rem;line-height:1}
.item .trash:hover{border-color:var(--alerte);background:var(--alerte-pale)}
.btn.danger{background:var(--alerte);color:#fff;border-color:var(--encre)}
.btn.danger:hover{background:#8f3b14}
.danger-link{color:var(--alerte)!important}

.payrow{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--filet)}
.payrow:last-child{border-bottom:0}
.payrow .main{flex:1;min-width:180px}.payrow .main b{display:block}.payrow .main .muted{font-size:.85rem}
.payrow .amt{font-family:var(--mono);font-weight:700;white-space:nowrap}
.payacts{gap:6px}
.badge.late{background:var(--alerte);color:#fff}
.stat.bad b{color:var(--alerte)}
.comm{display:flex;align-items:center;gap:6px}.comm input{width:72px;min-height:42px;padding:4px 8px;border:1.5px solid var(--filet);border-radius:10px}

/* ===== Thème « Pro » : sobre, net, sans effet crayon (thème par défaut ; « Atelier » reste disponible dans le menu) ===== */
:root[data-theme="pro"]{--fond:#F3F5F8;--papier:#FFFFFF;--bois:#E6EBF2;--filet:#D9E0EA;--encre:#0E1B2C;--texte:#1F2B3D;--gris:#5A6678;
--bleu:#2F7FC1;--bleu-fonce:#1D5F96;--bleu-survol:#2870AC;--bleu-pale:#E8F1FA;--ok:#1E8A55;--ok-pale:#E5F5EC;--alerte:#C0481A;--alerte-pale:#FCEBE2;
--serif:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--ombre:0 1px 2px rgba(14,27,44,.06),0 10px 26px -14px rgba(14,27,44,.22);--r:14px}
[data-theme=pro] body{background-image:none;font-size:16.5px;letter-spacing:-.003em}
[data-theme=pro] h1,[data-theme=pro] h2,[data-theme=pro] h3{font-weight:650;letter-spacing:-.015em}
[data-theme=pro] .title::after,[data-theme=pro] .bar-deco{display:none}
[data-theme=pro] .top{border-bottom:1px solid var(--filet);box-shadow:0 1px 0 rgba(14,27,44,.02)}
[data-theme=pro] .brand img,[data-theme=pro] .logo{filter:brightness(.55) saturate(1.6)}
[data-theme=pro] .btn{border:1px solid #C5D0DE;background:#fff;box-shadow:0 1px 2px rgba(14,27,44,.08);border-radius:10px;font-weight:600}
[data-theme=pro] .btn:hover{background:var(--bleu-pale);border-color:var(--bleu-fonce)}
[data-theme=pro] .btn:active{transform:none;box-shadow:none}
[data-theme=pro] .btn.primary{background:var(--bleu-fonce);border-color:var(--bleu-fonce);color:#fff}
[data-theme=pro] .btn.primary:hover{background:#174f7e}
[data-theme=pro] .btn.ghost{box-shadow:none;background:transparent}
[data-theme=pro] .btn.danger{background:var(--alerte);border-color:var(--alerte)}
[data-theme=pro] .btn[disabled]{opacity:.5}
[data-theme=pro] .card,[data-theme=pro] .stat,[data-theme=pro] .item{border:1px solid var(--filet);box-shadow:var(--ombre);border-radius:var(--r)}
[data-theme=pro] .item:hover,[data-theme=pro] .pick:hover{border-color:var(--bleu)}
[data-theme=pro] .pick{border:1px solid var(--filet);border-radius:12px}
[data-theme=pro] .pick[aria-pressed=true]{border-color:var(--bleu-fonce);box-shadow:0 0 0 2px var(--bleu-fonce)}
[data-theme=pro] .pick[aria-pressed=true] .tick{background:var(--bleu-fonce);border-color:var(--bleu-fonce);color:#fff}
[data-theme=pro] .pick .pr,[data-theme=pro] .recap td:last-child{font-family:var(--serif);font-variant-numeric:tabular-nums}
[data-theme=pro] .chip{border:1px solid var(--filet)}
[data-theme=pro] .chip[aria-pressed=true]{background:var(--bleu-pale);border-color:var(--bleu-fonce);color:var(--bleu-fonce);font-weight:650}
[data-theme=pro] .seg{border:1px solid #C5D0DE;border-radius:10px}
[data-theme=pro] .seg button[aria-pressed=true]{background:var(--bleu-fonce);color:#fff}
[data-theme=pro] .seg button+button{border-left:1px solid #C5D0DE}
[data-theme=pro] .field input,[data-theme=pro] .field select,[data-theme=pro] .field textarea,[data-theme=pro] .zonecard .searchwrap input{border:1px solid #C5D0DE;border-radius:10px}
[data-theme=pro] .zonecard .searchwrap input{border-width:1px}
[data-theme=pro] .steps li::before{clip-path:none;height:4px;border-radius:2px}
[data-theme=pro] .steps li.done::before{background:var(--bleu-fonce)}[data-theme=pro] .steps li.cur::before{background:var(--bleu)}
[data-theme=pro] .dock{border-top:1px solid var(--filet);box-shadow:0 -10px 30px -18px rgba(14,27,44,.35)}
[data-theme=pro] .avatar{border:1px solid var(--bleu-fonce);background:var(--bleu-fonce);color:#fff;box-shadow:none}
[data-theme=pro] .menu{border:1px solid var(--filet);box-shadow:0 18px 40px -16px rgba(14,27,44,.35);border-radius:14px}
[data-theme=pro] .nav a.on{background:var(--bleu-pale);color:var(--bleu-fonce)}
[data-theme=pro] .sheet{border:1px solid var(--filet);border-bottom:0;box-shadow:0 -20px 50px -20px rgba(14,27,44,.45)}
@media (min-width:700px){[data-theme=pro] .sheet{border-bottom:1px solid var(--filet);border-radius:16px}}
[data-theme=pro] .suggest{border:1px solid var(--filet);box-shadow:0 18px 40px -16px rgba(14,27,44,.35)}
[data-theme=pro] .fmap-wrap,[data-theme=pro] .fmap{border:1px solid var(--filet);box-shadow:var(--ombre)}
[data-theme=pro] .fmap-ctl button{border:1px solid #C5D0DE;box-shadow:0 1px 2px rgba(14,27,44,.12);border-radius:10px}
[data-theme=pro] .gauge{border:1px solid var(--filet);height:10px}
[data-theme=pro] .dial::-webkit-slider-runnable-track{border:1px solid #C5D0DE;height:8px}
[data-theme=pro] .dial::-webkit-slider-thumb{border:2px solid #fff;box-shadow:0 1px 4px rgba(14,27,44,.45);background:var(--bleu-fonce);margin-top:-14px}
[data-theme=pro] .dial::-moz-range-thumb{border:2px solid #fff;background:var(--bleu-fonce)}
[data-theme=pro] .sigbox{border-color:var(--bleu-fonce)}
[data-theme=pro] .note{border-left-width:4px;border-radius:0 10px 10px 0}
[data-theme=pro] .totals{background:var(--bleu-pale);border:1px solid #BFD7EC}
[data-theme=pro] .switch{border:1px solid var(--filet)}[data-theme=pro] .switch[aria-pressed=true]{border-color:var(--bleu-fonce)}
[data-theme=pro] .sect h3{font-family:var(--serif);font-weight:650}
[data-theme=pro] .mono,[data-theme=pro] .item .main .mono{font-family:var(--serif);letter-spacing:0}

.was{color:var(--gris);font-size:.85em;text-decoration:line-through}.free{color:var(--ok)}
.totals .ok-t{color:var(--ok)}
.discard .gauge span{background:linear-gradient(90deg,#4cae7e,var(--ok))}

/* étape Campagne : le parcours se lit de haut en bas (1 Où · 2 Activité · 3 Budget · 4 Résultat) ; l'estimation en direct reste visible, sans zone défilante à part */
.adsgrid{display:grid;gap:16px}
.adsgrid .col{display:grid;gap:16px;align-content:start;min-width:0}
.adsgrid .adsright{order:-1;position:sticky;top:var(--hh,64px);z-index:15}
.adsgrid .stepno{width:30px;height:30px;font-size:.85rem;margin-right:10px}
.sum{padding:12px 14px;border-radius:var(--r)}
.sum-h{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:8px}
.sum-m{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.sum .sm b{display:block;font-size:1.25rem;line-height:1.1;color:var(--encre);font-variant-numeric:tabular-nums}
.sum .sm span{font-size:.74rem;color:var(--gris);line-height:1.2;display:block}
.sum-go{display:none;margin-top:10px}
.sum-empty{display:flex;flex-direction:column;gap:2px;font-size:.92rem}
@media (max-width:979px){.sum{padding:8px 12px}.sum-h{margin-bottom:4px}.sum-h .muted{display:none}.sum .sm b{font-size:1.05rem}.sum .sm span{font-size:.66rem}.sum-empty span{display:none}}
@media (min-width:980px){
  .wrap:has(.adsgrid){max-width:1240px}
  .adsgrid{grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr);align-items:start}
  .adsgrid .adsright{order:0;top:84px}
  .sum{padding:18px}
  .sum-m{grid-template-columns:1fr 1fr;gap:14px 12px}
  .sum .sm b{font-size:1.7rem}
  .sum .sm span{font-size:.85rem}
  .sum-go{display:inline-block}
}
/* mode présentation */
.presov{position:fixed;inset:0;z-index:90;background:var(--fond);overflow:auto;padding:20px}
.presin{max-width:1180px;margin:0 auto}
.presgrid{display:grid;gap:18px;margin-top:16px}
@media (min-width:900px){.presgrid{grid-template-columns:1.2fr .8fr;align-items:start}}
.presmap{height:420px;border-radius:16px}
@media (min-width:900px){.presmap{height:520px}}
.preskpi{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.preskpi .pk{background:var(--papier);border:1px solid var(--filet);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.preskpi .pk b{font-size:1.9rem;line-height:1.1;color:var(--encre);font-variant-numeric:tabular-nums}
.preskpi .pk.wide{grid-column:1/-1;gap:6px}
.ok-t{color:var(--ok)}

.menu-ver{padding:8px 10px 4px;font-size:.75rem;color:var(--gris);border-top:1px solid var(--filet);margin-top:6px}
body.noscroll{overflow:hidden}
@media (max-width:640px){.presov{padding:14px}.presin>.row{padding-right:104px}.presov .presin>.row>.btn{position:fixed;top:12px;right:12px;z-index:95;box-shadow:0 2px 10px rgba(14,27,44,.25)}.preskpi{grid-template-columns:1fr 1fr}.preskpi .pk b{font-size:1.5rem}}

/* ===== Mode présentation (vue client, plein écran) ===== */
.steprow{display:flex;gap:14px;align-items:flex-start;justify-content:space-between}
.steprow .steps{flex:1}
.presbtn{flex:none;margin-top:2px;white-space:nowrap}
@media (max-width:640px){.steprow{flex-direction:column;gap:8px}.presbtn{align-self:flex-end}}
body.presenting .top,body.presenting .presbtn{display:none}
body.presenting:not(.reveal) .internal{display:none!important}
body.presenting{font-size:18.5px}
body.presenting .wrap{max-width:1320px;padding-top:34px}
body.presenting .wrap.narrow{max-width:900px}
body.presenting h1{font-size:clamp(2rem,4vw,2.9rem)}
body.presenting .btn.big{min-height:76px;font-size:1.25rem}
body.presenting .pick .nm{font-size:1.15rem}
body.presenting .resbig .big{font-size:3.2rem}
body.presenting .card{padding:26px}
.presexit{position:fixed;right:14px;top:12px;z-index:70;display:flex;gap:8px;flex-wrap:wrap;opacity:.78;transition:opacity .2s}
.presexit:hover,.presexit:focus-within{opacity:1}
.presexit .btn[aria-pressed=true]{background:var(--bleu-pale);border-color:var(--bleu-fonce)}
@media (max-width:640px){.presexit{right:8px;top:8px}.presexit .btn{padding:6px 12px;min-height:38px}}

/* ===== Style « Site » (par défaut) : même langage visuel que satidigital.fr depuis la refonte du 31/10/2026
   (fond blanc, titres en Urbanist, texte en Albert Sans, bleu #1D6395, boutons pilule, filets fins, ombres douces, vrai logo) ===== */
:root[data-theme="site"]{--fond:#FFFFFF;--papier:#FFFFFF;--bois:#F5F5F7;--filet:#D2D2D7;--encre:#1D1D1F;--texte:#1D1D1F;--gris:#5F5F66;
--bleu:#55A9DD;--bleu-fonce:#1D6395;--bleu-survol:#174F78;--bleu-pale:#E8F2FA;--ok:#1E8A55;--ok-pale:#E5F5EC;--alerte:#B8431A;--alerte-pale:#FCEBE2;
--serif:"Albert Sans","Segoe UI",Roboto,Arial,sans-serif;--titre:"Urbanist","Albert Sans","Segoe UI",Arial,sans-serif;--mono:"Albert Sans","Segoe UI",Roboto,Arial,sans-serif;
--ombre:0 1px 2px rgba(15,37,64,.05),0 14px 34px -20px rgba(15,37,64,.28);--r:18px;--bar:polygon(0 0,100% 0,calc(100% - 9px) 100%,0 100%)}
[data-theme=site] body{background-color:#fff;background-image:none;font-size:17px;color:var(--texte);font-variant-numeric:tabular-nums}
[data-theme=site] h1,[data-theme=site] h2,[data-theme=site] h3{font-family:var(--titre);font-weight:700;letter-spacing:-.02em;color:var(--encre)}
[data-theme=site] .top{background:rgba(255,255,255,.96);backdrop-filter:saturate(1.6) blur(12px);border-bottom:1px solid var(--filet);box-shadow:none}
[data-theme=site] .brand img,[data-theme=site] .logo{filter:none}
[data-theme=site] .nav a{border-radius:10px;color:var(--encre);font-weight:600;font-size:.95rem}
[data-theme=site] .nav a:hover{background:var(--bois)}
[data-theme=site] .nav a.on{background:var(--bleu-pale);color:var(--bleu-fonce)}
[data-theme=site] .cnt{background:var(--bleu-fonce);color:#fff}
[data-theme=site] .title::after,[data-theme=site] .bar-deco{display:none}
[data-theme=site] .btn{border:1px solid #C7C7CC;background:#fff;color:var(--encre);border-radius:999px;font-weight:600;box-shadow:none;transition:background .2s,border-color .2s,color .2s,transform .1s}
[data-theme=site] .btn:hover{background:#fff;border-color:var(--bleu-fonce);color:var(--bleu-fonce)}
[data-theme=site] .btn:active{transform:scale(.97);box-shadow:none}
[data-theme=site] .btn.primary{background:var(--bleu-fonce);border-color:var(--bleu-fonce);color:#fff}
[data-theme=site] .btn.primary:hover{background:var(--bleu-survol);border-color:var(--bleu-survol);color:#fff}
[data-theme=site] .btn.ghost{background:transparent;border-color:var(--filet);box-shadow:none}
[data-theme=site] .btn.ghost:hover{background:var(--bois);border-color:var(--filet);color:var(--encre);transform:none}
[data-theme=site] .btn.danger{background:var(--alerte);border-color:var(--alerte);color:#fff}
[data-theme=site] .btn[disabled]{opacity:.45;transform:none;box-shadow:none}
[data-theme=site] .link{color:var(--bleu-fonce)}
[data-theme=site] .card,[data-theme=site] .stat,[data-theme=site] .item{background:#fff;border:1px solid var(--filet);border-radius:var(--r);box-shadow:var(--ombre)}
[data-theme=site] .stat{box-shadow:none}
[data-theme=site] .item{box-shadow:none}
[data-theme=site] .item:hover,[data-theme=site] .pick:hover{border-color:var(--bleu-fonce);box-shadow:var(--ombre)}
[data-theme=site] .pick{border:1px solid var(--filet);border-radius:var(--r);background:#fff}
[data-theme=site] .pick[aria-pressed=true]{border-color:var(--bleu-fonce);box-shadow:0 0 0 2px var(--bleu-fonce);background:#fff}
[data-theme=site] .pick[aria-pressed=true] .tick{background:var(--bleu-fonce);border-color:var(--bleu-fonce);color:#fff}
[data-theme=site] .pick.rec:not([aria-pressed=true]){border-color:var(--bleu)}
[data-theme=site] .chip{border:1px solid var(--filet);background:#fff}
[data-theme=site] .chip[aria-pressed=true]{background:var(--bleu-pale);border-color:var(--bleu-fonce);color:var(--bleu-fonce);font-weight:700}
[data-theme=site] .seg{border:1px solid #C7C7CC;border-radius:999px}
[data-theme=site] .seg button+button{border-left:1px solid #C7C7CC}
[data-theme=site] .seg button[aria-pressed=true]{background:var(--bleu-fonce);color:#fff}
[data-theme=site] .field input,[data-theme=site] .field select,[data-theme=site] .field textarea,[data-theme=site] .sheet input,[data-theme=site] .sheet textarea,[data-theme=site] .zonecard .searchwrap input{border:1px solid #C7C7CC;border-radius:12px;background:#fff}
[data-theme=site] .zonecard .searchwrap input{border-radius:999px;padding-left:20px}
[data-theme=site] .field input:focus,[data-theme=site] .field select:focus,[data-theme=site] .field textarea:focus{border-color:var(--bleu-fonce);outline:3px solid rgba(85,169,221,.35)}
[data-theme=site] .switch{border:1px solid var(--filet);border-radius:14px}
[data-theme=site] .switch[aria-pressed=true]{border-color:var(--bleu-fonce)}
[data-theme=site] .switch[aria-pressed=true] .knob{background:var(--bleu-fonce)}
[data-theme=site] .steps li::before{height:4px;border-radius:2px;clip-path:none;background:var(--filet)}
[data-theme=site] .steps li.done::before{background:var(--bleu-fonce)}[data-theme=site] .steps li.cur::before{background:var(--bleu)}
[data-theme=site] .steps li.cur{color:var(--encre)}
[data-theme=site] .stepno{background:var(--bleu-fonce);border:0;color:#fff}
[data-theme=site] .dock{background:rgba(255,255,255,.97);border-top:1px solid var(--filet);box-shadow:0 -10px 30px -18px rgba(15,37,64,.3)}
[data-theme=site] .dock .tot b{color:var(--encre)}
[data-theme=site] .avatar{background:var(--bleu-fonce);color:#fff;border:1px solid var(--bleu-fonce);box-shadow:none}
[data-theme=site] .menu{background:#fff;border:1px solid var(--filet);border-radius:16px;box-shadow:0 20px 44px -18px rgba(15,37,64,.32)}
[data-theme=site] .menu a:hover,[data-theme=site] .menu button:hover{background:var(--bois)}
[data-theme=site] .sheetback{background:rgba(15,37,64,.45)}
[data-theme=site] .sheet{background:#fff;border:1px solid var(--filet);border-bottom:0;border-radius:22px 22px 0 0;box-shadow:0 -20px 50px -20px rgba(15,37,64,.4)}
@media (min-width:700px){[data-theme=site] .sheet{border-bottom:1px solid var(--filet);border-radius:22px;box-shadow:0 24px 60px rgba(15,37,64,.18)}}
[data-theme=site] .suggest{background:#fff;border:1px solid var(--filet);border-radius:16px;box-shadow:0 20px 44px -18px rgba(15,37,64,.32)}
[data-theme=site] .fmap-wrap,[data-theme=site] .fmap{background:var(--bleu-pale);border:1px solid var(--filet);border-radius:20px;box-shadow:var(--ombre)}
[data-theme=site] .fmap-ctl button{border:1px solid #C7C7CC;background:#fff;border-radius:999px;box-shadow:0 1px 3px rgba(15,37,64,.14)}
[data-theme=site] .fmap-credit{background:rgba(255,255,255,.85)}
[data-theme=site] .gauge{background:var(--bois);border:1px solid var(--filet);height:10px}
[data-theme=site] .gauge span{background:linear-gradient(90deg,var(--bleu),var(--bleu-fonce))}
[data-theme=site] .dial::-webkit-slider-runnable-track{border:1px solid #C7C7CC;height:8px;background:linear-gradient(90deg,var(--bleu-pale),var(--bleu))}
[data-theme=site] .dial::-webkit-slider-thumb{background:var(--bleu-fonce);border:2px solid #fff;box-shadow:0 1px 4px rgba(15,37,64,.45);margin-top:-14px}
[data-theme=site] .dial::-moz-range-thumb{background:var(--bleu-fonce);border:2px solid #fff}
[data-theme=site] .sigbox{border:2px dashed var(--bleu-fonce);border-radius:16px}
[data-theme=site] .note{background:var(--bois);border-left:4px solid var(--bleu);border-radius:0 14px 14px 0}
[data-theme=site] .note.warn{border-color:var(--alerte);background:var(--alerte-pale)}[data-theme=site] .note.ok{border-color:var(--ok);background:var(--ok-pale)}
[data-theme=site] .totals{background:var(--bleu-pale);border:1px solid #BFD7EC;border-radius:16px}
[data-theme=site] .sect h3{font-family:var(--titre);font-weight:700;letter-spacing:.1em;color:var(--bleu-fonce)}
[data-theme=site] .badge{background:var(--bleu-pale);color:var(--bleu-fonce);font-weight:600}
[data-theme=site] .badge.ok{background:var(--ok-pale);color:var(--ok)}[data-theme=site] .badge.warn{background:var(--alerte-pale);color:var(--alerte)}[data-theme=site] .badge.gray{background:var(--bois);color:var(--gris)}[data-theme=site] .badge.late{background:var(--alerte);color:#fff}
[data-theme=site] .item .trash{border:1px solid var(--filet);border-radius:999px;background:#fff}
[data-theme=site] .toast{background:var(--encre);border:1px solid var(--encre)}
[data-theme=site] .login .card{box-shadow:0 24px 60px rgba(15,37,64,.14)}
[data-theme=site] .login .logo{height:56px}
[data-theme=site] .rail-link.on,[data-theme=site] .path button.cur{background:var(--bleu-fonce);color:#fff}
[data-theme=site] .presov{background:#fff}
[data-theme=site] .preskpi .pk{border:1px solid var(--filet);border-radius:var(--r)}
[data-theme=site] .skeleton{background:linear-gradient(90deg,var(--bois),#fff,var(--bois));background-size:200% 100%}
[data-theme=site] .rbar{background:var(--bois)}
[data-theme=site] .dial::-moz-range-track{border:1px solid #C7C7CC;height:8px}
[data-theme=site] .presta.on,[data-theme=site] .role-card[aria-checked=true],[data-theme=site] .tk-kind[aria-checked=true]{border-color:var(--bleu-fonce);box-shadow:0 0 0 2px var(--bleu-fonce)}
[data-theme=site] .pal-box{border:1px solid var(--filet);box-shadow:0 24px 60px rgba(15,37,64,.22)}
[data-theme=site] .nv-call-btn.small{box-shadow:none}
[data-theme=site] .st-total{border:1px solid var(--filet)}
@media (max-width:640px){
  [data-theme=site] .steps li{min-width:0}
  [data-theme=site] .steps li.cur{flex:3;white-space:nowrap}
  [data-theme=site] .dock .in{gap:8px}
  [data-theme=site] .dock .btn.big{font-size:.95rem;padding:10px 12px;min-height:56px;min-width:0;flex:1 1 auto}
  [data-theme=site] .dock .tot{min-width:0}
  [data-theme=site] .dock .tot b{font-size:1.25rem}
  [data-theme=site] .dock .tot span{font-size:.7rem}
}
@media (max-width:640px){
  [data-theme=site] .dock .btn.big{white-space:normal;line-height:1.15;text-align:center;flex:1 1 150px}
  [data-theme=site] .dock .tot{flex:0 1 96px}
  [data-theme=site] .dock .btn.ghost{min-width:46px;padding:8px}
}

/* mode présentation : réglages et sortie en petits boutons ronds discrets, dans une bande libre au-dessus du parcours */
body.presenting .wrap{padding-top:58px}
.presexit{top:10px;right:12px;gap:8px;opacity:.5}
.presexit .btn.small{min-width:38px;width:38px;height:38px;min-height:38px;padding:0;border-radius:50%;font-size:1rem;line-height:1;box-shadow:none}
.presexit .btn.small:hover{transform:none;box-shadow:none}
@media (max-width:640px){.presexit{top:8px;right:8px}.presexit .btn.small{padding:0}body.presenting .wrap{padding-top:54px}}
body.presenting .adsgrid .adsright{top:56px}
@media (min-width:980px){body.presenting .adsgrid .adsright{top:60px}}

/* ===== Espace SATI : fiche client, espace client, sécurité ===== */
.fiche-grid{display:grid;gap:16px;margin-top:16px}
.fiche-grid .col{display:grid;gap:16px;align-content:start;min-width:0}
.fiche-grid .card+.card{margin-top:0}
@media (min-width:980px){.wrap:has(.fiche-grid){max-width:1180px}.fiche-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.item select,.card select{min-height:44px;padding:6px 10px;border:1.5px solid var(--filet);border-radius:10px;background:#fff;font:inherit;font-size:.92rem;color:var(--encre);max-width:100%}
.item.lead .main{flex:1 1 200px}
.qrbox{display:grid;place-items:center;padding:8px}
.qrbox img{width:220px;height:220px;max-width:100%;border:1.5px solid var(--filet);border-radius:12px;background:#fff}
.codes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.codes span{padding:8px 10px;border:1.5px dashed var(--filet);border-radius:10px;text-align:center;font-size:1rem;letter-spacing:.05em}
.steps-list{margin:0;padding-left:1.2em;display:grid;gap:6px;font-size:.95rem}
.login-alt{display:grid;gap:6px;justify-items:center;margin-top:6px;padding-top:12px;border-top:1px solid var(--filet)}
.internal-notes textarea{min-height:110px;width:100%;padding:10px 14px;border:1.5px solid var(--filet);border-radius:12px;font:inherit;background:#FFFDF5}
.login .card{max-width:440px}
@media (max-width:640px){.hero .row{width:100%}.item.lead{gap:8px}.item.lead .btn.small{min-height:44px}}
.item .main>span{display:block}
/* petits écrans : « Encaissements » passe dans le menu du compte pour que la barre tienne sans défilement */
.menu .menu-narrow{display:none}
@media (max-width:420px){.nav .nav-wide{display:none}.menu .menu-narrow{display:block}.top .nav a{padding:8px 6px;font-size:.9rem}}
.fiche-grid{grid-template-columns:minmax(0,1fr)}
@media (min-width:980px){.fiche-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media (max-width:640px){.item{flex-wrap:wrap}.item .main{flex:1 1 180px}.comm{flex-wrap:wrap}}
/* sous-traitance : rubriques du bon de mission, éditeurs de lignes */
.bm-rows{display:grid;grid-template-columns:minmax(120px,30%) 1fr;gap:10px 16px;margin:0}
.bm-rows dt{font-weight:700;color:var(--encre)}.bm-rows dd{margin:0;white-space:pre-line}
@media (max-width:640px){.bm-rows{grid-template-columns:1fr;gap:2px}.bm-rows dd{margin-bottom:10px}}
.line-edit{box-shadow:none;border-width:1.5px;border-color:var(--filet)!important}
.line-edit textarea,.card textarea{width:100%;padding:10px 14px;border:1.5px solid #9DB6CF;border-radius:12px;font:inherit;background:#fff}
.card .field input,.card .field select{min-height:48px}
/* grilles à une colonne : jamais plus larges que l'écran (un texte long sur une ligne ne pousse plus la carte) */
.grid:not(.g2):not(.g3){grid-template-columns:minmax(0,1fr)}
.line-edit{padding:12px}.line-edit .g2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
/* sous-traitance : prestations à cocher */
.presta{border:1.5px solid var(--filet);border-radius:14px;background:#fff;padding:2px 12px}
.presta.on{border-color:var(--encre);box-shadow:3px 3px 0 var(--bleu)}
.presta-head{display:flex;gap:12px;align-items:center;min-height:52px;cursor:pointer}
.presta-head input{width:24px;height:24px;flex:none;accent-color:var(--encre)}
.presta-name{display:flex;flex-direction:column;min-width:0}.presta-name .muted{font-size:.88rem}
.line-cfg{display:grid;gap:10px;padding:10px 0 12px;border-top:1px dashed var(--filet)}
.presta.custom .line-cfg{border-top:0}
.line-cfg .seg button{min-height:40px;padding:6px 14px}
.st-total{position:sticky;bottom:0;z-index:12;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:16px -6px 0;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border:2px solid var(--encre);border-radius:16px 16px 0 0;box-shadow:0 -8px 20px -14px rgba(15,37,64,.4)}
.st-total .big-total{display:block;font-size:1.5rem;color:var(--encre);font-variant-numeric:tabular-nums}
.st-total .muted{font-size:.82rem}
.line-edit.off{opacity:.55}
.sum-lines{display:grid;margin-top:8px}
.sum-line{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--filet)}
.sum-line>span:first-child{min-width:0;overflow-wrap:anywhere}.sum-line small{display:block}
.sum-line.ok{color:#1E8A55}.sum-line.tot{border-bottom:0;font-size:1.1rem}
.st-total>.row{flex-wrap:nowrap;gap:8px}
@media (max-width:420px){.st-total{flex-wrap:nowrap;gap:8px;padding:10px 10px calc(10px + env(safe-area-inset-bottom));margin:16px -4px 0}.st-total .big-total{font-size:1.25rem}.st-total .muted{font-size:.75rem}.st-total .btn{min-height:44px;padding:8px 14px;font-size:.95rem}}
.line-cfg{grid-template-columns:minmax(0,1fr)}.line-cfg>*{min-width:0}.line-cfg .g2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.line-cfg .seg{flex:none}.line-cfg .row{flex-wrap:wrap}
.line-cfg .g2{align-items:end}
.remise-tot{display:grid;gap:10px;padding:12px;margin-top:8px}
.line-edit .g2{align-items:end}
.calc-note{background:#F4F9FD;border-radius:12px;padding:10px 12px}
.vars-box summary{cursor:pointer;color:var(--bleu-fonce);font-weight:600}
.vars{display:grid;gap:4px;margin-top:8px;font-size:.88rem}
.var-row{display:flex;gap:4px 10px;flex-wrap:wrap;align-items:baseline;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--filet)}.var-row>span{min-width:0;overflow-wrap:anywhere}.var-row code{font-size:.82rem;background:#EEF4FA;border-radius:6px;padding:1px 6px}
/* téléprospection */
.call-btn{display:flex;width:100%;justify-content:center;margin:0 0 14px;font-size:1.15rem;text-decoration:none}
.outcomes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.outcomes .btn{width:100%;min-height:52px;white-space:normal;line-height:1.2}
.outcomes .wide{grid-column:1/-1}
.ok-btn{background:var(--ok-pale)!important;border-color:var(--ok)!important;color:var(--ok)!important;font-weight:700}
.st-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}.st-tabs .seg{white-space:nowrap}
.chips.days{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.chips.days .chip{flex:none;min-height:42px;padding:6px 14px}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px}
.slot{min-height:44px;border:1.5px solid var(--filet);background:#fff;border-radius:12px;cursor:pointer;font-variant-numeric:tabular-nums;font-size:1rem}
.slot[aria-pressed=true]{background:var(--bleu);border-color:var(--encre);font-weight:700}
.chip-x{border:0;background:none;margin-left:6px;cursor:pointer;font-size:1.1rem;line-height:1}
.list-item-wrap{flex-wrap:wrap}.list-item-wrap .comm select{max-width:220px}
@media (max-width:420px){.outcomes{gap:8px}.outcomes .btn{min-height:48px;padding:8px 10px;font-size:.95rem}}
label.check>input[type=checkbox]{width:26px!important;min-width:26px;flex:none}
.stats.two{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:0}@media (max-width:420px){.stats.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stats.two .stat{padding:10px 12px}.stats.two .stat b{font-size:1.4rem}}
.plage{flex-wrap:wrap;gap:6px 8px;align-items:center}.plage input[type=time]{width:auto;min-width:0;flex:1 1 96px}.agenda-it .main b{white-space:normal;overflow:visible;text-overflow:clip}
/* équipe : choix du type de compte */
.role-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.role-card{display:grid;gap:4px;text-align:left;padding:14px 16px;border:1.5px solid var(--filet);border-radius:14px;background:#fff;cursor:pointer;font:inherit;color:inherit}
.role-card[aria-checked=true]{border-color:var(--encre);box-shadow:3px 3px 0 var(--bleu);background:#F4F9FD}
.role-card .role-ico{font-size:1.5rem;line-height:1}.role-card b{font-size:1.05rem}.role-card .muted{font-size:.88rem;line-height:1.4}
.team-row{flex-wrap:wrap;gap:8px 12px}.team-row .main{flex:1 1 220px}
/* équipe : une carte par compte (identité, réglages, actions) */
.team-card{display:grid;gap:12px;padding:14px 16px;border:1.5px solid var(--filet);border-radius:14px;background:#fff}
.team-card.off{opacity:.6}
.team-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px 12px;flex-wrap:wrap}
.team-head .main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 220px}.team-head .main .mono{overflow-wrap:anywhere}
.team-badges{display:flex;gap:6px;flex-wrap:wrap}
.team-set{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;padding-top:12px;border-top:1px dashed var(--filet)}
.team-set .comm select{min-height:42px;padding:4px 10px;border:1.5px solid var(--filet);border-radius:10px;background:#fff;font:inherit}
.comm input[type=checkbox],.comm-check input{width:22px!important;height:22px;min-height:0!important;padding:0!important;border:0;accent-color:var(--encre);flex:none}
.team-act{display:flex;flex-wrap:wrap;gap:8px}
/* téléprospection : écran d'appel en deux colonnes, recherche, objectif, rémunération */
.call-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
@media (min-width:900px){.call-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.call-side{position:sticky;top:76px}}
@media (max-width:899px){.call-side{order:-1}}
.call-work{gap:16px}
.side-title{font-size:1.35rem;margin:0;line-height:1.2;overflow-wrap:anywhere}
.side-tags{display:flex;flex-wrap:wrap;gap:6px}.side-tags a.badge{text-decoration:none}
.args{margin:0;padding:0;list-style:none;display:grid;gap:8px}.args li{display:flex;gap:10px;align-items:flex-start;line-height:1.4}
.rdv-box{background:#F4F9FD;border:1.5px solid var(--filet);border-radius:14px;padding:14px}
.outcomes.small .btn{min-height:44px;font-size:.95rem}
details.more summary{cursor:pointer;color:var(--bleu-fonce);font-weight:600}
.result-card{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;padding:12px 14px;border:1.5px solid var(--filet);border-radius:14px;background:#fff}
.result-card .main{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 260px}.result-card .main b{overflow-wrap:anywhere}
.result-act{gap:8px;flex-wrap:wrap}
.goal{gap:8px}.bar{height:10px;border-radius:999px;background:var(--bois);overflow:hidden}.bar span{display:block;height:100%;background:var(--ok);border-radius:999px;transition:width .4s}
.gain-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;border:1.5px solid var(--filet);border-radius:12px;background:#fff}.gain-row .main{display:flex;flex-direction:column;min-width:0;flex:1 1 220px}
.appt-st{display:flex;gap:6px;flex-wrap:wrap}.appt-st .chip{min-height:38px;padding:4px 12px;font-size:.9rem}
.agenda-it{flex-wrap:wrap;gap:8px 12px}.agenda-it .main{display:flex;flex-direction:column;min-width:0;flex:1 1 240px}
.search-btn{display:flex;justify-content:center;text-decoration:none}
.wrap.wide{max-width:1320px}.call-work .g2{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.files-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end;margin:0 0 12px}
.recent-row{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 12px;border:1.5px solid var(--filet);border-radius:12px;background:#fff;cursor:pointer;font:inherit;color:inherit}.recent-row:hover{border-color:var(--encre)}
.key-card{border-color:var(--bleu-fonce);background:#F4F9FD;margin-bottom:16px}

/* ===== Structure par espaces (public/layout.js) : sélecteur d'espace de travail en haut et barre d'icônes à gauche sur ordinateur, en-tête + onglets + menu sur téléphone ===== */
:root{--side-w:92px;--tab-h:64px;--top-h:64px}
.app,[data-sp]{--acc:var(--bleu-fonce);--acc-pale:var(--bleu-pale)}
[data-sp=accueil]{--acc:var(--encre);--acc-pale:var(--bleu-pale)}
[data-sp=commercial]{--acc:#1D6395;--acc-pale:#E6F1FA}
[data-sp=tele],[data-sp=appels]{--acc:#6A4BB8;--acc-pale:#F0EBFB}
[data-sp=st]{--acc:#A3600F;--acc-pale:#FBF1E3}
[data-sp=fin]{--acc:#2E7D4F;--acc-pale:#E5F3EA}
[data-sp=admin]{--acc:#4A5A70;--acc-pale:#ECF0F5}
[data-sp=compte]{--acc:var(--encre);--acc-pale:var(--bleu-pale)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--acc);flex:none;font-style:normal}
.ico{display:inline-flex;flex:none;line-height:0}.ico svg{display:block}
.icon-btn{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--filet);background:#fff;border-radius:12px;cursor:pointer;color:var(--encre);flex:none}

.side{position:fixed;left:0;top:0;bottom:0;width:var(--side-w);display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 0;background:rgba(255,255,255,.97);border-right:1px solid var(--filet);z-index:25}
.rail-brand{display:grid;place-items:center;width:72px;height:50px;margin-bottom:6px;border-radius:14px}
.rail-brand .logo{height:38px;width:auto}
.rail-nav{flex:1;min-height:0;width:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;display:flex;flex-direction:column;align-items:center;gap:10px;padding:2px 0 6px}
.rail-nav::-webkit-scrollbar{display:none}
.rail-group{display:flex;flex-direction:column;align-items:center;gap:3px}
.rail-group+.rail-group{border-top:1px solid var(--filet);padding-top:10px}
.rail-link{position:relative;width:80px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 2px 7px;border-radius:16px;text-decoration:none;color:var(--gris);font-size:.7rem;font-weight:700;line-height:1.1;text-align:center;transition:background .15s,color .15s,transform .15s}
.rail-link .ico svg{width:22px;height:22px}
.rail-link:hover{background:var(--acc-pale);color:var(--encre);transform:translateY(-1px)}
.rail-link.on{background:var(--encre);color:#fff}
.rail-link.on:hover{transform:none;color:#fff}
.rail-lbl{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail-link .cnt{position:absolute;top:3px;left:calc(50% + 6px);margin:0;min-width:18px;height:18px;line-height:18px;font-size:.66rem;padding:0 5px}
.rail-foot{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;padding-top:8px;border-top:1px solid var(--filet)}
.rail-acct{position:relative}
.rail-me{width:42px;height:42px;display:grid;place-items:center;font-size:.82rem}
.side-label{display:flex;align-items:center;gap:8px;padding:4px 10px 3px;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gris);font-weight:700}
.avatar.sm{width:36px;height:36px;display:grid;place-items:center;font-size:.82rem;flex:none;box-shadow:none;cursor:inherit}
.menu.up{top:auto;bottom:0;left:calc(100% + 34px);right:auto;min-width:250px}
.menu a,.menu button{display:flex;align-items:center;gap:10px}
.menu .ico{color:var(--gris)}

.app-main{margin-left:var(--side-w);min-width:0}
.app-main .wrap{max-width:1180px;padding:26px 32px 120px}
.app-main .wrap.narrow{max-width:760px}
.app-main .wrap.wide{max-width:1320px}
.app-main .wrap.full{max-width:1720px}
.eyebrow{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--acc);font-weight:700;margin:0 0 4px}
.eyebrow .muted{color:var(--gris);font-weight:500}
.wtop{display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:20;height:var(--top-h);padding:0 32px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--filet)}
.wtop .grow{flex:1}
.wtop .btn{white-space:nowrap}
.wsel{display:inline-flex;align-items:center;gap:2px;padding:4px;border-radius:999px;background:var(--bleu-pale)}
.wsel>a,.wsel>span{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:6px 16px;border-radius:999px;text-decoration:none;color:var(--gris);font-weight:700;font-size:.92rem;white-space:nowrap;transition:background .15s,color .15s}
.wsel>a:hover{color:var(--encre);background:rgba(255,255,255,.65)}
.wsel>a.on{background:#fff;color:var(--encre);box-shadow:0 1px 3px rgba(15,37,64,.18)}
.wsel.one{background:none;padding:0}.wsel.one>span{padding-left:2px;color:var(--encre)}
.wsel .lock{display:inline-flex;opacity:.75}.wsel .lock svg{width:14px;height:14px}
.wsel [data-ws=sati] .dot,.wsel[data-ws=sati] .dot{background:#1D6395}
.wsel [data-ws=tele] .dot,.wsel[data-ws=tele] .dot,.wsel [data-ws=appels] .dot,.wsel[data-ws=appels] .dot{background:#6A4BB8}
.wsel [data-ws=st] .dot,.wsel[data-ws=st] .dot{background:#A3600F}
.reg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:16px;margin-top:18px}
.reg-grid>.card{margin:0}
.reg-tile{display:flex;gap:14px;align-items:flex-start;width:100%;text-decoration:none;color:var(--texte);text-align:left;font:inherit;cursor:pointer;transition:transform .15s,box-shadow .15s}
.reg-tile:hover{transform:translateY(-2px)}
.reg-tile b{display:block;color:var(--encre);font-size:1.02rem;margin-bottom:3px}
.reg-tile .muted{display:block;font-size:.9rem;line-height:1.4}
.reg-ico{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--bleu-pale);color:var(--bleu-fonce);flex:none}
.mtop,.subtabs,.tabbar,.drawer{display:none}
@media (min-width:960px){.top-dup{display:none!important}} /* déjà dans la barre du haut sur ordinateur */
body.has-side .dock{left:var(--side-w)}
@media (min-width:960px){.app .call-side{top:calc(var(--top-h) + 20px)}}
@media (min-width:960px) and (max-width:1180px){.app-main .wrap{padding:22px 22px 110px}.wtop{padding:0 22px}}
@media (max-width:959px){
  .side,.wtop{display:none}
  .app-main{margin-left:0}
  .app-main .wrap,.app-main .wrap.narrow,.app-main .wrap.wide{padding:16px 16px calc(var(--tab-h) + 96px)}
  .app.no-tabbar .wrap{padding-bottom:150px}
  .eyebrow{display:none}
  body.has-side .dock{left:0}
  .mtop{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:20;padding:8px max(16px,env(safe-area-inset-left));background:var(--papier);border-bottom:1px solid var(--filet);min-height:57px}
  .mtop .brand{display:inline-flex}.mtop .brand .logo{height:32px;width:auto}
  .mtitle{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-weight:700;color:var(--encre);font-size:1rem}
  .mtitle span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mtop .acct{position:relative}
  .mtop .avatar{width:40px;height:40px}
  .subtabs{display:flex;gap:6px;overflow-x:auto;padding:8px 16px;background:var(--papier);border-bottom:1px solid var(--filet);position:sticky;top:57px;z-index:19;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .subtabs::-webkit-scrollbar{display:none}
  .subtabs a{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:6px 14px;border-radius:999px;text-decoration:none;color:var(--texte);font-size:.88rem;font-weight:600;border:1px solid var(--filet);background:#fff;white-space:nowrap}
  .subtabs a.on{background:var(--acc);border-color:var(--acc);color:#fff}
  .subtabs .cnt{margin:0}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--papier);border-top:1px solid var(--filet);padding:4px max(4px,env(safe-area-inset-left)) calc(4px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px -14px rgba(14,27,44,.35)}
  .tabbar a,.tabbar button{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:56px;padding:4px 2px;border:0;background:none;color:var(--gris);text-decoration:none;font:inherit;font-size:.7rem;font-weight:600;border-radius:12px;position:relative;cursor:pointer}
  .tabbar .ico{padding:3px 14px;border-radius:999px}
  .tabbar .on{color:var(--bleu-fonce)}
  .tabbar .on .ico{background:var(--bleu-pale)}
  .tabbar .cnt{position:absolute;top:1px;left:calc(50% + 4px);margin:0;min-width:18px;height:18px;line-height:18px;font-size:.66rem;padding:0 5px}
  .tabbar a>span:last-of-type:not(.cnt),.tabbar button>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .st-total{bottom:calc(var(--tab-h) + env(safe-area-inset-bottom))}
  .app.no-tabbar .st-total{bottom:0}
  .toast{bottom:calc(var(--tab-h) + 24px + env(safe-area-inset-bottom))}
  .drawer:not([hidden]){display:flex;position:fixed;inset:0;z-index:55;background:rgba(14,27,44,.45);align-items:flex-end}
  .drawer-in{background:var(--papier);width:100%;max-height:90vh;overflow-y:auto;border-radius:18px 18px 0 0;padding:16px 16px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}
  .drawer-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .drawer-group{display:flex;flex-direction:column;gap:6px}
  .drawer-group .side-label{padding:0 2px}
  .drawer-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .drawer-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--filet);background:#fff;text-decoration:none;color:var(--texte);font:inherit;font-size:.9rem;font-weight:600;min-height:52px;cursor:pointer;text-align:left;line-height:1.2}
  .drawer-link .ico{color:var(--acc)}
  .drawer-link.on{border-color:var(--acc);background:var(--acc-pale);color:var(--acc)}
  .drawer-link .cnt{margin-left:auto}
  body.noscroll{overflow:hidden}
}
@media (max-width:359px){.drawer-grid{grid-template-columns:1fr}.tabbar a,.tabbar button{font-size:.64rem}.tabbar .ico{padding:3px 8px}}
body.presenting .side,body.presenting .wtop,body.presenting .mtop,body.presenting .subtabs,body.presenting .tabbar,body.presenting .eyebrow{display:none!important}
body.presenting .app-main{margin-left:0}
body.presenting.has-side .dock{left:0}
@media print{.side,.wtop,.mtop,.subtabs,.tabbar,.drawer{display:none!important}.app-main{margin-left:0}}

/* ===== Tableau de bord (public/tableau.js) ===== */
.dash{display:flex;flex-direction:column;gap:22px}
.dhead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 16px;flex-wrap:wrap}
.dhead h1{font-size:clamp(1.55rem,2.6vw,2.1rem)}
.dhead p{margin:4px 0 0}
.dactions{gap:8px}
.dtitle{font-family:var(--mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gris);margin:0 0 10px;font-weight:700}
.todos{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.todo{display:flex;align-items:center;gap:12px;padding:12px 12px 12px 14px;border-radius:14px;background:var(--papier);border:1px solid var(--filet);border-left:4px solid var(--acc);text-decoration:none;color:var(--texte);box-shadow:var(--ombre)}
.todo b{font-size:1.45rem;color:var(--acc);font-variant-numeric:tabular-nums;min-width:28px;text-align:center;line-height:1}
.todo>span:not(.ico){flex:1;font-size:.92rem;line-height:1.3}
.todo .ico{color:var(--gris)}
.todo:hover{border-color:var(--acc);border-left-color:var(--acc)}
.todo.hot{background:var(--acc-pale)}
.todo.bad{border-left-color:var(--alerte)}.todo.bad b{color:var(--alerte)}
.todo-empty{padding:14px 16px;border-radius:14px;background:var(--ok-pale);color:var(--ok);font-weight:600}
.dgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.dgrid.one{grid-template-columns:minmax(0,1fr)}
.dcard{background:var(--papier);border:1px solid var(--filet);border-top:4px solid var(--acc);border-radius:var(--r);box-shadow:var(--ombre);padding:14px 18px 14px;display:flex;flex-direction:column;gap:12px;min-width:0}
.dcard.plain{border-top-width:1px;border-top-color:var(--filet)}
.dcard-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.dcard-head h2{display:flex;align-items:center;gap:8px;font-size:1.05rem}
.dcard-head h2 .ico{color:var(--gris)}
.dlink{display:inline-flex;align-items:center;gap:2px;font-size:.88rem;font-weight:700;color:var(--acc);text-decoration:none;white-space:nowrap}
.dlink .ico svg{width:16px;height:16px}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:var(--acc-pale);text-decoration:none;color:var(--texte);min-width:0}
a.kpi:hover{box-shadow:inset 0 0 0 2px var(--acc)}
.kpi b{font-size:1.45rem;color:var(--encre);font-variant-numeric:tabular-nums;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi span{font-size:.8rem;color:var(--gris);line-height:1.25}
.kpi small{font-size:.78rem;color:var(--acc);font-weight:700}
.kpi.bad b{color:var(--alerte)}.kpi.good b{color:var(--ok)}.kpi.hot b{color:var(--acc)}
.kbar{height:6px;border-radius:4px;background:rgba(255,255,255,.85);margin-top:6px;overflow:hidden}
.kbar i{display:block;height:100%;background:var(--acc);border-radius:4px}
.dfoot{margin:0;font-size:.84rem;color:var(--gris);line-height:1.45}
.dlist{display:flex;flex-direction:column}
.drow{display:flex;align-items:center;gap:12px;padding:10px 6px;border-top:1px solid var(--filet);text-decoration:none;color:var(--texte);border-radius:8px}
.drow:first-child{border-top:0}
.drow:hover{background:var(--bleu-pale)}
.drow .when{flex:none;width:96px;display:flex;flex-direction:column;line-height:1.2}
.drow .when b{font-size:.85rem;color:var(--encre)}.drow .when span{font-family:var(--mono);font-size:.82rem;color:var(--bleu-fonce)}
.drow .main{flex:1;min-width:0;display:flex;flex-direction:column}
.drow .main b{font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--encre)}
.drow .main span{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dempty{margin:4px 0}
.dteam{margin:0;font-size:.88rem}
@media (max-width:1099px){.dgrid:not(.two){grid-template-columns:minmax(0,1fr)}}
@media (max-width:959px){.dgrid,.dgrid.two{grid-template-columns:minmax(0,1fr)}.dash{gap:18px}.dhead .dactions{width:100%;flex-wrap:nowrap}.dhead .dactions .btn{flex:1;min-width:0;white-space:nowrap;font-size:.9rem;padding:8px 12px}.dhead .dactions .btn .ico{display:none}}
@media (max-width:420px){.kpi b{font-size:1.2rem}.kpi{padding:9px 10px}.todos{grid-template-columns:minmax(0,1fr)}.drow .when{width:78px}.dcard{padding:12px 14px}}
@media (max-width:360px){.dhead .dactions .btn{font-size:.82rem;padding:8px 6px}}
@media (min-width:700px){.dgrid.one .kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* nouvelle version disponible (onglet resté ouvert pendant une mise à jour) */
.newver{position:fixed;left:50%;transform:translateX(-50%);top:12px;z-index:80;display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 24px);padding:10px 12px 10px 16px;border-radius:14px;background:var(--encre);color:#fff;box-shadow:0 12px 30px -12px rgba(14,27,44,.5);font-size:.92rem}
.newver .btn,.newver .btn.primary{background:#fff;color:var(--encre);border-color:#fff}
/* « Autour du client » sur la fiche d'appel (carte, villes, concurrents, commerces voisins) */
.around .around-map{position:relative;width:100%;height:250px;border-radius:12px;overflow:hidden;border:1px solid var(--filet);background:var(--fond)}
.around .around-map .fmap-ctl button{width:34px;height:34px;font-size:1rem}
.around .lbl{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);font-weight:700}
.around-list{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column}
.around-list li{display:flex;flex-direction:column;padding:6px 0;border-top:1px solid var(--filet);line-height:1.25}
.around-list li:first-child{border-top:0}
.around-list .nm{font-weight:600;color:var(--encre);font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.around-list .muted{font-size:.8rem}
.around-towns{gap:6px;margin-top:4px}
.around-tip{font-size:.9rem}
.around-src{font-size:.75rem;margin:0}
@media (min-width:960px){.app .call-side{max-height:calc(100vh - var(--top-h) - 40px);overflow-y:auto;overscroll-behavior:contain}}
/* ===== Pipeline des demandes (public/pipeline.js) : colonnes par étape, cartes, prévision ===== */
.hero .row{gap:10px;flex-wrap:wrap}
.pipe .hero>div:first-child{flex:1 1 360px;min-width:0}
.view-seg button{min-height:40px;padding:6px 16px;font-weight:700}
.pipe-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}
.psum{background:#fff;border:1.5px solid var(--filet);border-radius:var(--r,16px);padding:12px 16px;display:flex;flex-direction:column;gap:2px;min-width:0}
.psum-l{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--gris)}
.psum b{font-size:1.5rem;color:var(--encre);font-variant-numeric:tabular-nums;line-height:1.2}
.psum .muted{font-size:.82rem}
.psum.acc b{color:var(--bleu-fonce)}.psum.ok b{color:var(--ok)}.psum.warn b{color:var(--alerte)}
.pipe-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}
.pipe-filters .chips{gap:6px}
.pipe-filters .chip{min-height:38px;padding:4px 14px;font-size:.92rem}
.pipe-src select{min-height:40px;border:1.5px solid var(--filet);border-radius:999px;padding:4px 14px;background:#fff;font:inherit;font-size:.92rem;color:var(--texte)}
.pipe-q{flex:1 1 220px;margin:0}.pipe-q input{min-height:40px;border-radius:999px!important;padding:6px 16px}
.board{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr)) 54px;gap:12px;align-items:start;overflow-x:auto;padding-bottom:10px;overscroll-behavior-x:contain}
.board.with-lost{grid-template-columns:repeat(6,minmax(190px,1fr))}
.col{--c:var(--bleu);background:rgba(232,240,248,.72);border:2px solid transparent;border-radius:var(--r,16px);padding:10px;min-height:300px;min-width:0;transition:border-color .15s,background .15s}
.col[data-col=nouveau]{--c:#E8A33D}.col[data-col=contacte]{--c:#55A9DD}.col[data-col=rdv]{--c:#6A4BB8}.col[data-col=devis]{--c:#1D6395}.col[data-col=gagne]{--c:#1E8A55;background:rgba(229,245,236,.75)}.col[data-col=perdu]{--c:#8A97A8}
.col.over{border-color:var(--c);border-style:dashed;background:#fff}
.col-h h2{display:flex;align-items:center;gap:8px;font-size:.98rem;margin:2px 2px 0}
.col-h .dot{background:var(--c);width:10px;height:10px}
.col-n{margin-left:auto;font-family:var(--mono);font-size:.75rem;font-weight:700;color:var(--gris);background:#fff;border-radius:999px;padding:1px 9px}
.col-t{font-size:.85rem;color:var(--gris);margin:2px 2px 10px}.col-t b{color:var(--encre)}
.col-cards{display:flex;flex-direction:column;gap:9px}
.col-empty{border:1.5px dashed var(--filet);border-radius:12px;padding:16px 10px;text-align:center;color:var(--gris);font-size:.88rem}
.col.lost:not(.open){padding:6px 4px;min-width:0}
.col-lost-h{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;cursor:pointer;font:inherit;font-weight:800;color:var(--gris);padding:6px 4px;border-radius:12px}
.col.lost:not(.open) .col-lost-h{flex-direction:column;writing-mode:vertical-rl;padding:10px 0;min-height:280px;justify-content:flex-start}
.col.lost:not(.open) .col-lost-h .col-n{margin:0;writing-mode:horizontal-tb}
.col-lost-h:hover{background:#fff;color:var(--encre)}
.pcard{position:relative;background:#fff;border:1.5px solid var(--filet);border-radius:14px;padding:10px 12px 8px;cursor:grab;transition:transform .15s,border-color .15s,box-shadow .15s;min-width:0}
.pcard:hover,.pcard:focus-visible{border-color:var(--encre);transform:translateY(-2px);box-shadow:0 6px 0 rgba(15,37,64,.1);outline:0}
.pcard.stale{border-left:6px solid #C47A16}
.pcard.drag{opacity:.35}
.pc-top{display:flex;align-items:flex-start;gap:7px;min-width:0}
.pc-name{flex:1;min-width:0;color:var(--encre);font-size:.98rem;line-height:1.25;padding-top:1px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:break-word}
.temp{flex:none;width:20px;height:22px;border:0;background:none;padding:0;display:grid;place-items:center;cursor:pointer;border-radius:50%}
.temp::before{content:"";width:11px;height:11px;border-radius:50%;background:var(--t,#C9D4E1)}
.temp:hover{background:var(--bleu-pale)}
.t-chaud{--t:#E5533D}.t-tiede{--t:#E8A33D}.t-froid{--t:#9DB4CB}.t-none{cursor:default}.t-none::before{display:none}
.pc-val{flex:none;border:0;background:none;font:inherit;font-weight:800;font-size:.95rem;color:var(--encre);padding:2px 6px;margin-left:-6px;border-radius:8px;cursor:pointer;font-variant-numeric:tabular-nums;white-space:nowrap}
.pc-val:hover{background:var(--bleu-pale)}.pc-val.est{color:var(--gris)}
.pc-sub{font-size:.84rem;color:var(--gris);margin:1px 0 0 27px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-tags{display:flex;flex-wrap:wrap;gap:5px;margin:7px 0 0}
.pc-tags .badge{font-size:.7rem;padding:1px 8px}
.badge.src-ads{background:#DCECF8;color:#1D6395}.badge.src-tele{background:#EFEAFB;color:#6A4BB8}.badge.src-other{background:#EEF2F7;color:var(--gris)}
.badge.chrono{background:#FCEBE2;color:#B8431A}.badge.chrono.old{background:#B8431A;color:#fff}
.badge.stale-b{background:#FDF1DC;color:#9A5B0B}
.pc-next{margin-top:8px;font-size:.82rem;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--bleu-pale);color:var(--bleu-fonce);line-height:1.3}
.pc-next.today{background:var(--bleu-fonce);color:#fff}.pc-next.late{background:#FDF1DC;color:#9A5B0B}.pc-next.none{background:var(--alerte-pale);color:var(--alerte)}
.pc-next.won{background:var(--ok-pale);color:var(--ok)}.pc-next.lost{background:#EEF2F7;color:var(--gris);font-weight:600}
.pc-foot{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:.78rem;min-height:26px}
.pc-owner{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
.pc-move{border:0;background:none;font:inherit;font-size:.78rem;font-weight:700;color:var(--bleu-fonce);cursor:pointer;padding:3px 6px;border-radius:8px}
.pc-move:hover{background:var(--bleu-pale)}
.stage-picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.stage-picks .btn[disabled]{opacity:1}
.confetti{position:fixed;pointer-events:none;font-size:22px;z-index:90;animation:confetti 1.4s ease-out forwards}
@keyframes confetti{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--dx),var(--dy)) rotate(360deg);opacity:0}}
@media (max-width:1180px){.pipe-sum{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:959px){
  .board,.board.with-lost{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(84vw,320px);scroll-snap-type:x mandatory;margin:0 -16px;padding:0 16px 10px;scroll-padding:0 16px}
  .board .col{scroll-snap-align:start}
  .board .col.lost:not(.open){width:54px}
  .board{grid-auto-columns:min(84vw,320px)}
  .pcard{cursor:pointer}
  .hero .row{width:100%}.hero .row .btn.primary{flex:1}
}
@media (max-width:420px){.psum{padding:10px 12px}.psum b{font-size:1.2rem}.pipe-filters .chip{padding:4px 10px}}
/* ===== Fiche affaire (public/affaire.js) : parcours des étapes, trois colonnes, zone de saisie unique, historique ===== */
.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}.btn.ok:hover{background:#18744A;border-color:#18744A;color:#fff}
.aff-back{padding-left:0}
.aff-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:6px 0 16px}
.aff-id{display:flex;align-items:center;gap:14px;min-width:0;flex:1 1 420px}
.aff-id .title{font-size:1.65rem;overflow-wrap:anywhere}
.aff-av{width:56px;height:56px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:800;font-size:1.1rem;background:var(--bleu-pale);color:var(--bleu-fonce);border:2px solid var(--bleu-fonce)}
.aff-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;color:var(--gris);font-size:.95rem}
.aff-meta b{color:var(--encre)}
.badge.temp-b{background:#fff;border:1.5px solid var(--filet);color:var(--gris)}.badge.temp-b.t-chaud{color:#C23B26}.badge.temp-b.t-tiede{color:#B9761B}.badge.temp-b.t-froid{color:#5C7A99}
.aff-acts{display:flex;gap:10px;flex-wrap:wrap}
.path{display:flex;margin:0 0 10px;filter:drop-shadow(0 1px 0 var(--filet))}
.path button{flex:1;min-width:0;border:0;font:inherit;font-weight:700;font-size:.9rem;color:var(--gris);background:var(--bois,#E8F0F8);padding:11px 8px 11px 24px;margin-left:-10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%,16px 50%);transition:filter .15s,background .15s}
.path button:first-child{margin-left:0;padding-left:14px;border-radius:14px 0 0 14px;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%)}
.path button:last-child{border-radius:0 14px 14px 0;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,16px 50%)}
.path button:hover{filter:brightness(.95)}
.path button.done{background:var(--ok);color:#fff}.path button.cur{background:var(--encre);color:#fff;cursor:default}
.path.lost button{background:#EEF2F7;color:#9AA7B6}
.aff-under{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.aff-next{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.aff-next .pc-next{margin:0;font-size:.9rem;padding:5px 14px}
.aff-grid{display:grid;grid-template-columns:290px minmax(0,1fr) 320px;gap:18px;align-items:start}
.aff-col{display:grid;gap:16px;min-width:0}
.aff-card{display:grid;gap:10px;padding:16px 18px;min-width:0}
.aff .card{margin:0}
.aff-card-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.aff-card-h h3{margin:0;font-size:1rem}
.aff-card-h .link{padding:0}
.props{display:grid}
.prop{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--filet);font-size:.92rem;min-width:0}
.prop:first-child{border-top:0}
.prop>span{color:var(--gris);flex:none}.prop>b{color:var(--encre);text-align:right;min-width:0;overflow-wrap:anywhere;font-weight:600}
.prop select{max-width:170px;min-height:36px;border:1.5px solid var(--filet);border-radius:999px;padding:2px 10px;background:#fff;font:inherit;font-size:.9rem}
.aff-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:8px}
.aff-tile{display:grid;place-items:center;text-align:center;border:1.5px solid var(--filet);border-radius:14px;padding:9px 4px;background:#fff;text-decoration:none;color:var(--encre);font:inherit;font-size:.8rem;font-weight:700;line-height:1.35;cursor:pointer;transition:transform .15s,border-color .15s}
.aff-tile:hover{border-color:var(--encre);transform:translateY(-2px)}
.aff-msg{margin:0;white-space:pre-line;font-size:.95rem;overflow-wrap:anywhere}
.aff-check ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.aff-check li{display:flex;align-items:center;gap:9px;font-size:.92rem;color:var(--gris)}
.aff-check li i{width:22px;height:22px;border-radius:50%;border:2px solid var(--filet);display:grid;place-items:center;font-style:normal;font-size:.8rem;font-weight:800;flex:none;background:#fff}
.aff-check li.ok{color:var(--encre)}.aff-check li.ok i{background:var(--ok);border-color:var(--ok);color:#fff}
.aff-check li.half i{border-color:var(--bleu);color:var(--bleu-fonce)}
.gauge-s{height:8px;border-radius:999px;background:var(--bois,#E8F0F8);overflow:hidden}.gauge-s span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--bleu),var(--ok))}
.comp{padding:0;overflow:hidden}
.comp-tabs{display:flex;background:var(--bois,#E8F0F8);overflow-x:auto;scrollbar-width:none}
.comp-tabs::-webkit-scrollbar{display:none}
.comp-tabs button{flex:none;border:0;background:none;font:inherit;font-weight:700;font-size:.92rem;color:var(--gris);padding:11px 16px;cursor:pointer;white-space:nowrap}
.comp-tabs button:hover{color:var(--encre)}
.comp-tabs button.on{background:#fff;color:var(--encre);box-shadow:inset 0 3px 0 var(--bleu)}
.comp-body{display:grid;gap:10px;padding:14px 16px 16px}
.comp-body textarea{width:100%;min-height:96px;border:1.5px solid #9DB6CF;border-radius:12px;padding:10px 12px;font:inherit;resize:vertical}
.comp-body input[type=text],.comp-body input[type=date],.comp-body input[type=datetime-local]{width:100%;min-height:44px;border:1.5px solid #9DB6CF;border-radius:12px;padding:6px 12px;font:inherit;background:#fff}
.comp-body textarea:focus,.comp-body input:focus{outline:3px solid rgba(85,169,221,.35);border-color:var(--bleu-fonce)}
.comp-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}
.comp-bar.wrap{justify-content:flex-start;flex-wrap:wrap}
.comp-bar .muted{font-size:.85rem}
.comp-line{margin:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.comp-date{display:inline-flex;gap:6px;align-items:center}.comp-date input[type=date]{width:auto;min-height:38px}
.feed{list-style:none;margin:0;padding:0;display:grid;gap:0;position:relative}
.feed::before{content:"";position:absolute;left:15px;top:6px;bottom:6px;width:2px;background:var(--filet)}
.ev{display:flex;gap:12px;padding:8px 0;position:relative;font-size:.93rem;min-width:0}
.ev>div{min-width:0;overflow-wrap:anywhere}
.ev-i{width:32px;height:32px;border-radius:50%;background:#fff;border:1.5px solid var(--filet);display:grid;place-items:center;flex:none;font-size:.9rem;position:relative;z-index:1}
.ev-call .ev-i,.ev-sms .ev-i,.ev-whatsapp .ev-i,.ev-email .ev-i{border-color:var(--bleu)}
.ev-viewed .ev-i,.ev-link_sent .ev-i{border-color:var(--ok)}
.ev-m{font-size:.8rem;margin-top:1px}
.aff-val{font-size:1.9rem;font-weight:800;color:var(--encre);font-variant-numeric:tabular-nums;line-height:1.1}
.aff-prob{display:grid;gap:2px;font-size:.9rem;color:var(--gris);border-top:1px solid var(--filet);padding-top:8px}.aff-prob b{color:var(--encre)}
.aff-temp{display:grid;gap:6px;border-top:1px solid var(--filet);padding-top:8px}
.aff-temp .muted{font-size:.85rem}
.aff-temp .chips{gap:6px}.aff-temp .chip{min-height:34px;padding:3px 12px;font-size:.88rem;display:inline-flex;align-items:center;gap:6px}
.tdot{width:10px;height:10px;border-radius:50%;background:var(--t)}
.aff-quotes{display:grid;gap:8px}
.aff-q{display:grid;gap:5px;width:100%;text-align:left;border:1.5px solid var(--filet);border-radius:14px;background:#fff;padding:10px 12px;font:inherit;cursor:pointer;transition:border-color .15s,transform .15s}
.aff-q:hover{border-color:var(--encre);transform:translateY(-1px)}
.aff-q-1{display:flex;justify-content:space-between;gap:8px;color:var(--encre)}
.aff-q-2{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.aff-q .muted{font-size:.8rem}
.aff-seen{font-size:.78rem;color:var(--ok);font-weight:700}
.aff-svc{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.aff-svc li{display:flex;justify-content:space-between;align-items:center;gap:8px}.aff-svc li>span:first-child{display:grid;font-size:.92rem}.aff-svc .muted{font-size:.8rem}
@media (max-width:1279px){.aff-grid{grid-template-columns:270px minmax(0,1fr)}.aff-grid>.aff-col:last-child{grid-column:1/-1;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));align-items:start}}
@media (max-width:959px){
  .aff-grid{grid-template-columns:minmax(0,1fr)}
  .aff-grid>.aff-col:last-child{grid-template-columns:minmax(0,1fr)}
  .aff-id .title{font-size:1.35rem}.aff-av{width:46px;height:46px;font-size:.95rem}
  .aff-acts{width:100%}.aff-acts .btn{flex:1;justify-content:center}
  .path{overflow-x:auto;scrollbar-width:none;margin:0 -16px 10px;padding:0 16px}.path::-webkit-scrollbar{display:none}
  .path button{flex:none;min-width:118px;font-size:.84rem}
}
/* ===== Accueil (public/tableau.js) : objectif du mois, « À faire maintenant », la journée, renouvellements ===== */
.dhead .title{margin:0}
.dhead p.muted{margin-top:12px}
.goalband{display:grid;grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,1fr));padding:0;overflow:hidden}
.goalband>*{padding:16px 20px;border-left:1px solid var(--filet);display:flex;flex-direction:column;gap:3px;min-width:0;text-decoration:none;color:inherit}
.goalband>:first-child{border-left:0;background:linear-gradient(135deg,#F2F9FE,#fff)}
a.gb-cell:hover{background:var(--bleu-pale)}
.gb-l{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--bleu-fonce)}
.goalband b{font-size:1.75rem;line-height:1.15;color:var(--encre);font-variant-numeric:tabular-nums;font-weight:800}
.goalband b small{font-size:.95rem;font-weight:600;color:var(--gris)}
.goalband b.good{color:var(--ok)}.goalband b.bad{color:var(--alerte)}
.gb-sub{font-size:.86rem;color:var(--gris)}.gb-sub b{font-size:inherit;color:var(--bleu-fonce)}
.gb-gauge{position:relative;height:12px;border-radius:999px;background:var(--bois,#E8F0F8);overflow:hidden;margin:8px 0 4px}
.gb-gauge u{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--bleu),var(--bleu-fonce));border-radius:999px}
.gb-gauge s{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,rgba(85,169,221,.45) 0 6px,rgba(85,169,221,.12) 6px 12px)}
.gb-edit{padding:0 0 0 6px;font-size:.86rem}
.home-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:18px;align-items:start}
.home-side{display:grid;gap:18px;min-width:0}
.now-list{display:grid}
.now-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--filet);min-width:0}
.now-row:first-child{border-top:0;padding-top:2px}
.now-ico{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;flex:none;background:var(--bleu-pale);color:var(--bleu-fonce)}
.now-row.hot .now-ico{background:#FDF1DC;color:#9A5B0B}.now-row.warn .now-ico{background:var(--alerte-pale);color:var(--alerte)}
.now-main{flex:1;min-width:0;text-decoration:none;color:inherit;display:grid;gap:1px}
.now-main b{color:var(--encre);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.now-main .muted{font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.now-main:hover b{text-decoration:underline}
.now-row .chrono{font:700 .72rem var(--mono);border-radius:999px;padding:1px 8px}
.now-row .btn{flex:none}
.now-more{display:block;margin-top:8px;font-size:.9rem;color:var(--bleu-fonce);font-weight:700}
.now-counts{margin-top:12px}
.day{display:grid;gap:2px}
.day-row{display:flex;gap:12px;padding:9px 10px;border-radius:12px;text-decoration:none;color:inherit;min-width:0}
.day-row:hover{background:var(--bleu-pale)}
.day-row.now{background:var(--bleu-pale)}
.day-row time{width:62px;flex:none;font:700 .8rem var(--mono);color:var(--bleu-fonce);padding-top:2px}
.day-row>span{display:grid;min-width:0}.day-row b{color:var(--encre);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-row .muted{font-size:.85rem}
.dash>.dtitle{margin:8px 0 -6px}
@media (max-width:1179px){.goalband{grid-template-columns:repeat(2,minmax(0,1fr))}.goalband>:nth-child(3){border-left:0}.goalband>:nth-child(n+3){border-top:1px solid var(--filet)}.home-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:520px){.goalband{grid-template-columns:minmax(0,1fr)}.goalband>*{border-left:0;border-top:1px solid var(--filet);padding:12px 16px}.goalband>:first-child{border-top:0}.goalband b{font-size:1.45rem}
  .now-row{flex-wrap:wrap;align-items:flex-start}.now-ico{width:34px;height:34px}.now-main{flex:1 1 calc(100% - 50px)}.now-main .muted{white-space:normal}.now-row .btn{margin-left:46px}}
/* ===== Recherche ⌘K et menu « ＋ Nouveau » (public/recherche.js) ===== */
.wsearch{flex:0 1 420px;min-width:0;display:flex;align-items:center;gap:10px;min-height:42px;padding:6px 8px 6px 16px;border:2px solid var(--filet);border-radius:999px;background:#fff;color:var(--gris);font:inherit;font-size:.92rem;cursor:pointer;text-align:left;transition:border-color .15s}
.wsearch:hover{border-color:var(--encre)}
.wsearch>span:not(.ico){flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wsearch kbd,.pal-ft kbd{font:600 .75rem var(--mono);background:var(--bleu-pale);color:var(--bleu-fonce);border-radius:7px;padding:2px 8px;white-space:nowrap}
.new-wrap{position:relative}
.new-wrap .caret{font-size:.75rem;margin-left:2px;opacity:.8}
.menu.new-menu{right:0;left:auto;top:calc(100% + 8px);min-width:280px;padding:6px}
.new-menu button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:none;padding:9px 10px;border-radius:12px;font:inherit;cursor:pointer;color:var(--texte)}
.new-menu button>span{display:grid;line-height:1.25}.new-menu b{color:var(--encre)}.new-menu small{color:var(--gris);font-size:.8rem}
.new-menu .ico{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--bleu-pale);color:var(--bleu-fonce)}
.mtop .msearch{width:40px;height:40px;border-radius:50%}
.pal{position:fixed;inset:0;z-index:70;background:rgba(15,37,64,.45);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}
.pal-box{width:min(680px,100%);max-height:76vh;display:flex;flex-direction:column;background:#fff;border:2px solid var(--encre);border-radius:22px;box-shadow:6px 6px 0 var(--bleu);overflow:hidden}
.pal-in{display:flex;align-items:center;gap:10px;padding:6px 10px 6px 18px;border-bottom:1px solid var(--filet);color:var(--gris)}
.pal-in input{flex:1;min-width:0;border:0;outline:0;font:inherit;font-size:1.1rem;padding:12px 0;background:none;color:var(--encre)}
.pal-in input::-webkit-search-cancel-button{display:none}
.pal-esc{border:1px solid var(--filet);background:#fff;border-radius:8px;font:600 .75rem var(--mono);color:var(--gris);padding:4px 8px;cursor:pointer}
.pal-list{overflow-y:auto;padding:6px 8px 10px;overscroll-behavior:contain}
.pal-g{font:700 .68rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gris);padding:12px 10px 4px}
.pal-g span{letter-spacing:0;text-transform:none;font-weight:500}
.pal-i{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:14px;cursor:pointer;min-width:0}
.pal-i.sel{background:var(--bleu-pale)}
.pal-ico{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex:none;background:#fff;border:1.5px solid var(--filet);color:var(--bleu-fonce)}
.pal-i.sel .pal-ico{border-color:var(--bleu)}
.pal-t{flex:1;min-width:0;display:grid}.pal-t b{color:var(--encre);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pal-t span{font-size:.84rem;color:var(--gris);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pal-k{flex:none;font:600 .72rem var(--mono);color:var(--gris)}
.pal-empty{padding:22px 12px;text-align:center;color:var(--gris)}.pal-empty.small{padding:8px 12px;font-size:.85rem}
.pal-ft{padding:9px 16px;border-top:1px solid var(--filet);font-size:.8rem;color:var(--gris)}
@media (max-width:1180px){.wsearch{flex-basis:46px;padding:6px 10px;justify-content:center}.wsearch>span:not(.ico),.wsearch kbd{display:none}}
@media (max-width:959px){.pal{padding:10px}.pal-box{max-height:calc(100vh - 20px);border-radius:18px}.pal-ft{display:none}.pal-k{display:none}}
/* ===== Téléprospection et Sous-traitance rhabillées : bandeaux de chiffres, listes en lignes, barre d'outils des appels ===== */
.goalband.n3{grid-template-columns:minmax(0,1.35fr) repeat(2,minmax(0,1fr))}
.goalband.n5{grid-template-columns:minmax(0,1.25fr) repeat(4,minmax(0,1fr))}
.goalband{margin-bottom:18px}
.dash .goalband{margin-bottom:0}
@media (max-width:1179px){.goalband.n3,.goalband.n5{grid-template-columns:repeat(2,minmax(0,1fr))}.goalband.n5>:nth-child(n+3){border-top:1px solid var(--filet)}.goalband.n5>:nth-child(odd){border-left:0}.goalband.n5>:nth-child(even){border-left:1px solid var(--filet)}}
@media (max-width:520px){.goalband.n3,.goalband.n5{grid-template-columns:minmax(0,1fr)}.goalband.n5>*{border-left:0!important}}
.app[data-sp=tele] .list,.app[data-sp=appels] .list,.app[data-sp=st] .list{gap:0;background:#fff;border:1.5px solid var(--filet);border-radius:var(--r);overflow:hidden}
.app[data-sp=tele] .list>.item,.app[data-sp=appels] .list>.item,.app[data-sp=st] .list>.item{border:0;border-top:1px solid var(--filet);border-radius:0;box-shadow:none;padding:12px 16px;margin:0;transition:background .15s}
.app[data-sp=tele] .list>.item:first-child,.app[data-sp=appels] .list>.item:first-child,.app[data-sp=st] .list>.item:first-child{border-top:0}
.app[data-sp=tele] .list>.item:hover,.app[data-sp=appels] .list>.item:hover,.app[data-sp=st] .list>.item:hover{background:var(--acc-pale);border-color:var(--filet)}
.app[data-sp=tele] .list>.empty,.app[data-sp=appels] .list>.empty,.app[data-sp=st] .list>.empty{margin:0}
.app[data-sp=tele] .stat,.app[data-sp=appels] .stat,.app[data-sp=st] .stat{background:var(--acc-pale);border-color:transparent}
.row-av{width:40px;height:40px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:800;font-size:.85rem;background:var(--acc-pale);color:var(--acc);border:1.5px solid var(--acc)}
.ap-tools{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;padding:14px 18px;margin:0}
.ap-tools .files-row{flex:1 1 420px;min-width:0;margin:0}
.ap-start{flex:none;min-height:48px;padding:10px 22px}
.ap-filter{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:16px 0 12px}
.ap-filter .st-tabs{margin:0}
@media (max-width:640px){.ap-start{width:100%}.ap-filter .st-tabs{width:100%;overflow-x:auto}}
.app[data-sp=st] .aff-av{background:var(--acc-pale);color:var(--acc);border-color:var(--acc)}
/* téléphone : bandeaux de chiffres sur deux colonnes (le premier chiffre en entier au-dessus) */
@media (max-width:520px){
  .goalband,.goalband.n3,.goalband.n5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .goalband>*{border-left:0!important;border-top:1px solid var(--filet);padding:10px 14px}
  .goalband>:first-child{grid-column:1/-1;border-top:0}
  .goalband>:nth-child(odd):not(:first-child){border-left:1px solid var(--filet)!important}
  .goalband b{font-size:1.25rem}.goalband .gb-sub{font-size:.78rem}.goalband .gb-sub b{font-size:inherit}
}
/* ===== Tickets (public/tickets.js, espace client « Aide ») ===== */
.list.rows{gap:0;background:#fff;border:1.5px solid var(--filet);border-radius:var(--r);overflow:hidden}
.list.rows>.item{border:0;border-top:1px solid var(--filet);border-radius:0;box-shadow:none;padding:12px 16px;margin:0;text-decoration:none;color:inherit}
.list.rows>.item:first-child{border-top:0}
.list.rows>.item:hover{background:var(--acc-pale)}
.tk-row.unread .main b{font-weight:800}
.tk-urg{width:10px;height:10px;border-radius:50%;flex:none;background:#C9D4E1}.tk-urg.u-importante{background:#E8A33D}.tk-urg.u-bloquant{background:#E5533D}
.tk-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.tk-thread{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.tk-msg{max-width:min(620px,88%);padding:10px 14px;border-radius:16px;border:1.5px solid var(--filet);background:#fff;justify-self:start}
.tk-msg.me{justify-self:end;background:var(--bleu-pale);border-color:#C3DDF1}
.tk-msg.internal{justify-self:stretch;max-width:none;background:#FDF5E4;border:1.5px dashed #E1B868}
.tk-meta{font-size:.8rem;color:var(--gris);margin-bottom:4px}.tk-meta b{color:var(--encre)}
.tk-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.95rem}
.tk-photo{display:inline-block;margin-top:8px}.tk-photo img{max-width:min(260px,100%);max-height:220px;border-radius:12px;border:1px solid var(--filet);display:block}
.tk-quick{gap:6px}.tk-quick .chip{min-height:32px;padding:3px 12px;font-size:.84rem;text-align:left}
.tk-contact{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.9rem;padding:6px 0;border-top:1px solid var(--filet)}.tk-contact span{color:var(--encre);font-weight:600;flex-basis:100%}
.tk-other{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 0;border-top:1px solid var(--filet);text-decoration:none;color:var(--texte);font-size:.9rem}
.tk-other:first-of-type{border-top:0}
.tk .prop select{max-width:180px}
.ph-pick{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.ph-prev{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ph-prev img{max-width:120px;max-height:120px;border-radius:12px;border:1px solid var(--filet)}
.tk-kinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tk-kind{display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 14px;border:1.5px solid var(--filet);border-radius:16px;background:#fff;font:inherit;font-weight:700;color:var(--encre);text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.tk-kind>span{font-size:1.3rem}
.tk-kind:hover{border-color:var(--encre)}
.tk-kind[aria-checked=true]{border-color:var(--encre);background:var(--bleu-pale);box-shadow:3px 3px 0 var(--bleu)}
.tk-new textarea,.tk-reply textarea{width:100%;min-height:110px;border:1.5px solid #9DB6CF;border-radius:12px;padding:10px 12px;font:inherit;resize:vertical}
.tk-alert{display:block;text-decoration:none;color:var(--encre);font-weight:700;margin-bottom:16px}
@media (max-width:1100px){.tk-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:420px){.tk-kinds{grid-template-columns:minmax(0,1fr)}.tk-msg{max-width:96%}}
.notif-card .btn{justify-self:start}
/* ===== Éditeur « Mon site » (public/site-editor.js) ===== */
.se{display:grid;gap:16px;padding-bottom:70px}
.se-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:#fff;border:1.5px solid var(--filet);border-radius:var(--r);padding:10px 16px}
.se-top b{color:var(--encre)}
.se-sec{display:grid;gap:12px;margin:0}
.se-h h3{margin:0}.se-h p{margin:4px 0 0;font-size:.92rem}
.se-field{display:grid;gap:4px;margin:0}
.se-l{font-weight:700;color:var(--encre);font-size:.93rem}
.se input[type=text],.se input[type=tel],.se input[type=email],.se input[type=date],.se textarea{width:100%;min-height:42px;border:1.5px solid #9DB6CF;border-radius:12px;padding:8px 12px;font:inherit;background:#fff}
.se textarea{resize:vertical}
.se input:focus,.se textarea:focus{outline:3px solid rgba(85,169,221,.35);border-color:var(--bleu-fonce)}
.se-hours{display:grid;gap:6px}
.se-day{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:8px;align-items:center}.se-day>span{font-weight:600}
.se-day .chip{min-height:36px;padding:3px 12px;font-size:.85rem}
.se-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.se-photo-row{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.se-photo-row img,.se-nophoto{width:160px;height:110px;object-fit:cover;border-radius:12px;border:1px solid var(--filet);background:var(--bois,#E8F0F8)}
.se-nophoto{display:grid;place-items:center;color:var(--gris);font-size:.85rem}
.se-item{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--filet);border-radius:14px;padding:10px 12px;background:#fff}
.se-item-f{flex:1;min-width:0;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:8px}.se-item-f>:last-child{grid-column:1/-1}
.se-move{display:flex;flex-direction:column;gap:4px}.se-move .icon-btn{width:34px;height:34px;font-size:.9rem}.se-move .icon-btn[disabled]{opacity:.35}
.se-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.se-g{display:grid;gap:6px;border:1.5px solid var(--filet);border-radius:14px;padding:8px;background:#fff}.se-g img{width:100%;height:130px;object-fit:cover;border-radius:10px}
.se-g .se-move{flex-direction:row;justify-content:flex-end}
.se-bar{position:sticky;bottom:12px;z-index:20;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--encre);color:#fff;border-radius:999px;padding:8px 10px 8px 18px;box-shadow:0 10px 30px -12px rgba(15,37,64,.55)}
.se-bar>span{flex:1;font-weight:700;font-size:.92rem}
.se-bar .btn{border-color:#fff}.se-bar .btn:not(.primary){background:transparent;color:#fff}.se-bar .btn.primary{background:#fff;color:var(--encre)}
.se-prev{position:fixed;inset:0;z-index:80;background:rgba(15,37,64,.55);display:flex;flex-direction:column;padding:12px;gap:8px}
.se-prev-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border-radius:16px;padding:8px 12px}.se-prev-bar .grow{flex:1}.se-prev-bar .chip{min-height:34px;padding:3px 12px;font-size:.88rem}
.se-frame{flex:1;width:100%;border:0;border-radius:16px;background:#fff}
@media (max-width:959px){.se-bar{bottom:calc(var(--tab-h) + 10px)}}
@media (max-width:520px){.se-day{grid-template-columns:76px minmax(0,1fr)}.se-day .chip{grid-column:2;justify-self:start}.se-dates{grid-template-columns:minmax(0,1fr)}.se-item-f{grid-template-columns:minmax(0,1fr)}.se-photo-row img,.se-nophoto{width:100%;height:160px}.se-bar{border-radius:18px}}

/* ---------- santé des sites (étape 4 : public/sante.js) ---------- */
.hs-dot{display:inline-block;width:11px;height:11px;border-radius:50%;flex:none;background:var(--filet);vertical-align:middle;box-shadow:0 0 0 3px var(--papier)}
.hs-dot.hs-ok{background:var(--ok)}.hs-dot.hs-lent{background:#D99A1E}.hs-dot.hs-panne{background:var(--alerte);animation:hs-pulse 1.6s ease-in-out infinite}.hs-dot.hs-inconnu{background:var(--filet)}
@keyframes hs-pulse{50%{box-shadow:0 0 0 6px var(--alerte-pale)}}
@media (prefers-reduced-motion:reduce){.hs-dot.hs-panne{animation:none}}
.list.rows .item>.hs-dot{margin-right:2px}
.hs-meta{display:block;font-size:.82rem;margin-top:2px}
.hs-off{opacity:.6}
.hs-alerts{border-color:var(--alerte)}.hs-alerts h3{color:var(--alerte)}
.hs-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px;align-items:start}.hs-cards>.card{margin:0}
.hs-bars{display:grid;grid-template-columns:repeat(30,minmax(0,1fr));gap:3px;height:44px;align-items:stretch;margin:6px 0 4px}
.hs-bar{display:block;border-radius:3px;background:var(--bois)}.hs-bar.good{background:var(--ok)}.hs-bar.mid{background:#D99A1E}.hs-bar.bad{background:var(--alerte)}.hs-bar.none{background:var(--bois)}
.hs-legend{font-size:.8rem;display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0 0}.hs-legend .hs-bar{width:12px;height:12px}
.hs-report{display:grid;gap:0}
.hs-r{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--filet)}.hs-r:last-of-type{border-bottom:0}
.hs-r b{text-align:right}.hs-r b small{display:block;font-weight:400;color:var(--gris);font-size:.8rem}
.hs-pannes{font-size:.85rem;margin:8px 0 0}
.hs-check{display:flex;align-items:center;gap:10px;font-weight:600;cursor:pointer;min-height:44px}.hs-check input{width:20px;height:20px;flex:none}
.hs-backups .item{padding:8px 0}
.hs-client .hs-cl+.hs-cl{border-top:1px solid var(--filet);margin-top:12px;padding-top:12px}
.hs-cl-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 6px;font-size:1.02rem}
.hs-client{margin-bottom:16px}.hs-cl-list{list-style:none;padding:0;margin:0 0 8px;display:grid;gap:4px;font-size:.92rem}.hs-cl-list li{display:flex;gap:8px;align-items:baseline}
.hero .title .hs-dot{width:14px;height:14px;vertical-align:.18em}
@media (max-width:860px){.hs-cards{grid-template-columns:minmax(0,1fr)}}
@media (max-width:520px){.hs-r{flex-direction:column;align-items:flex-start;gap:2px}.hs-r b{text-align:left}.hs-bars{gap:2px;height:36px}}
.chips a.chip{text-decoration:none;color:inherit;display:inline-flex;align-items:center}

/* bon de mission : répartition selon le modèle du contrat cadre (public/sous-traitance.js) */
.calc-split .split-row{display:flex;flex-wrap:wrap;gap:6px 18px;background:#FFF8EC;border-radius:12px;padding:10px 12px;font-size:.92rem}

/* campagnes de téléprospection par région (public/campagnes.js) : carte en points, ville conseillée, villes de la région */
.camp-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.camp-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;margin-top:16px;align-items:start}
.camp-col{display:grid;gap:12px;align-content:start;min-width:0}
.camp-sticky{position:sticky;top:calc(var(--top-h) + 12px)}
.camp-res:empty{display:none}
.cmap-card{padding:12px}
.cmap{position:relative;width:100%}
.cmap-cv{display:block;touch-action:manipulation}
.cmap-tip{position:absolute;z-index:3;pointer-events:none;max-width:240px;padding:8px 10px;border:1px solid var(--filet);border-radius:10px;background:#fff;box-shadow:var(--ombre);font-size:.85rem;line-height:1.35}
.cmap-tip .muted{font-size:.8rem}
.cmap-sw,.cmap-legend i,.camp-row i,.camp-state i{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:6px;vertical-align:-1px;flex:none}
.cmap-legend{display:flex;flex-wrap:wrap;gap:6px 14px;padding:10px 6px 2px;font-size:.82rem;color:var(--gris)}
.cmap-legend i.gold{background:transparent;box-shadow:inset 0 0 0 2.5px #E9B824}
.cmap-hint{margin:8px 6px 0;font-size:.85rem}
.camp-card{display:grid;gap:8px;padding:16px;text-decoration:none;color:inherit}
.camp-card:hover{border-color:var(--encre)}
.camp-dot{width:12px;height:12px;border-radius:50%;flex:none;margin-top:6px}
.camp-bar{height:8px;border-radius:99px;background:var(--bois);overflow:hidden}
.camp-bar u{display:block;height:100%;background:var(--ok);border-radius:99px}
.camp-kicker{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bleu-fonce);font-weight:700}
.camp-big{font-size:1.5rem;line-height:1.15;color:var(--encre)}
.camp-state{display:flex;align-items:center;font-size:.92rem}
.camp-near{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.88rem}
.camp-near .chip,.camp-metiers .chip{min-height:36px;padding:4px 12px;font-size:.88rem}
.camp-metiers{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.camp-metiers a.chip{display:inline-flex;align-items:center;text-decoration:none;color:inherit}
.camp-status{min-height:40px;padding:6px 10px;border:1.5px solid var(--filet);border-radius:10px;background:#fff;font-size:.95rem}
.camp-row{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;width:100%;text-align:left;padding:8px 10px;border:1px solid var(--filet);border-radius:10px;background:#fff;cursor:pointer;font:inherit;color:inherit;font-size:.92rem}
.camp-row:hover{border-color:var(--encre)}
.camp-row i{margin-right:0}
.camp-row b{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.camp-row .muted{font-size:.82rem}
.camp-seg{display:flex;width:100%}
.camp-seg button{flex:1;min-height:40px;padding:6px 8px;font-size:.86rem}
.camp-res .result-card.is-done{opacity:.62}
@media (max-width:959px){.camp-grid{display:flex;flex-direction:column;align-items:stretch}.camp-col{display:contents}.camp-sticky{position:static}.o-city{order:1}.o-res{order:2}.o-map{order:3}.o-find{order:4}.o-list{order:5}}
.camp-acts{gap:8px;flex-wrap:wrap}.camp-found:empty{display:none}
.camp-set{display:inline-flex;align-items:center;gap:6px}
@media (max-width:520px){.camp-acts{width:100%;flex-wrap:nowrap}.camp-acts>.btn.primary{flex:1 1 auto;white-space:nowrap;padding-left:12px;padding-right:12px}.camp-acts>.btn.primary{min-width:0}.camp-acts .camp-status{flex:none;width:104px;font-size:.9rem;padding:6px 8px}.camp-set span:not(.ico){display:none}.camp-set{flex:none;padding-left:12px;padding-right:12px}}
@media (max-width:360px){.camp-n{display:none}}
@media (max-width:420px){.camp-big{font-size:1.3rem}.camp-seg button{font-size:.8rem;padding:6px 4px}}

/* nouvelles entreprises (public/nouvelles.js) : filtres à gauche, liste à droite ; sur téléphone, filtres repliables */
.nv-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;margin-top:16px;align-items:start}
.nv-side{position:sticky;top:calc(var(--top-h) + 12px);max-height:calc(100vh - var(--top-h) - 24px);overflow:auto;border-radius:var(--r)}
.nv-filters{gap:12px;padding:16px}
.nv-filters .field{margin:0}
.nv-filters input[type=search],.nv-filters select{width:100%}
.nv-filt-btn{display:none}
.nv-chips{display:flex;flex-wrap:wrap;gap:6px}
.nv-chips .chip{min-height:36px;padding:4px 12px;font-size:.88rem}
.nv-chips.small .chip{min-height:32px;padding:3px 10px;font-size:.84rem}
.nv-tabs{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.nv-tabs .chip{flex:none;min-height:38px;padding:4px 14px;font-size:.9rem;white-space:nowrap}
.nv-check{display:flex;gap:10px;align-items:flex-start;cursor:pointer;font-size:.95rem;line-height:1.3}
.nv-check input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--bleu-fonce)}
.nv-check small{display:block;font-size:.82rem}
.nv-card{cursor:pointer;flex-wrap:nowrap}
.nv-card:hover{border-color:var(--encre)}
.nv-card.is-done{opacity:.72}
.nv-go{font-size:1.6rem;color:var(--gris);flex:none;line-height:1}
.nv-stars{font-size:.95rem;letter-spacing:1px;color:#D99A0E;flex:none;white-space:nowrap}
.nv-stars i{font-style:normal;color:var(--filet)}
.nv-status{margin:6px 0 0;font-size:.92rem}
.nv-found{display:flex;flex-wrap:wrap;gap:6px}.nv-found:empty{display:none}
.nv-found .chip{min-height:34px;padding:3px 10px;font-size:.85rem}
.nv-accroche{width:100%;font-size:.95rem;line-height:1.45;padding:10px 12px;border:1.5px solid var(--filet);border-radius:12px;background:var(--papier);resize:vertical}
.nv-runs{display:grid;gap:2px;font-size:.84rem;overflow-x:auto}
.nv-run{display:grid;grid-template-columns:1.6fr .8fr repeat(5,.8fr);gap:8px;padding:6px 8px;border-radius:8px;background:#fff;min-width:560px}
.nv-run.head{background:transparent;color:var(--gris);font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.nv-run.err{background:var(--alerte-pale)}
.nv-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;text-decoration:none;color:inherit;margin-top:12px}
.nv-banner:hover{border-color:var(--encre)}
.nv-banner-ico{font-size:1.5rem}
.nv-banner-txt{display:flex;flex-direction:column;flex:1;min-width:0;font-size:.95rem}
.nv-call{border-color:#E9B824;background:#FFF8E6}
.nv-count{margin:0;font-weight:600;color:var(--bleu-fonce)}
.ap-last{font-size:.88rem;overflow-wrap:anywhere}
.nv-call-btn.small{min-height:36px;padding:4px 12px;font-size:.88rem;box-shadow:2px 2px 0 var(--encre)}
@media (max-width:959px){.nv-grid{display:flex;flex-direction:column;align-items:stretch}.nv-side{position:static;max-height:none;overflow:visible}.nv-filt-btn{display:inline-flex}.nv-filters{display:none;margin-top:8px}.nv-filters.open{display:grid}}
