:root{--ink:#402b20;--muted:#706256;--wood:#c88c55;--paper:#fffdf9;--cream:#f2ece3;--line:#dfd4c6;--dark:#30231c}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:inherit;text-underline-offset:4px}p{overflow-wrap:anywhere}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #926027;outline-offset:4px}button,.button,.outline{display:inline-flex;align-items:center;justify-content:center;padding:13px 22px;border:1px solid var(--ink);border-radius:3px;text-decoration:none;font-weight:650;cursor:pointer;min-height:48px;line-height:1.4}button,.button{background:var(--ink);color:white}.outline{background:transparent;color:var(--ink)}button:hover,.button:hover{background:#624332}.topline{padding:10px 6vw;background:var(--ink);color:#f4e7d9;font-size:14px;display:flex;justify-content:space-between;gap:15px}header{padding:23px 6vw;display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;gap:14px;align-items:center;text-decoration:none}.brand img{object-fit:contain}.brand strong{font-size:26px;letter-spacing:.18em}nav{display:flex;gap:28px;align-items:center;flex-wrap:wrap}nav a{text-decoration:none;font-size:15px;font-weight:600}.hero{display:grid;grid-template-columns:1.1fr .9fr;min-height:650px}.hero>div:first-child{padding:85px 5vw 75px 6vw}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:13px;font-weight:700;color:#885c38;margin:0 0 24px}.hero h1{font-family:Georgia,serif;font-size:clamp(45px,5.9vw,90px);font-weight:400;line-height:1.06;letter-spacing:-.045em;margin:0 0 30px}.hero h1 em{font-weight:400;color:#9b693f}.intro{max-width:600px;color:var(--muted);font-size:18px}.actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:24px}.signature{background:var(--cream);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px}.signature img{width:min(100%,420px);height:auto;mix-blend-mode:multiply}.signature span{align-self:flex-end;border-top:1px solid var(--ink);padding:20px 30px;font-size:14px}.strip{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line)}.strip span{padding:26px;text-align:center;border-right:1px solid var(--line);font-size:15px}.section{padding:86px 6vw}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:40px}h2{font-family:Georgia,serif;font-size:clamp(29px,3.1vw,48px);font-weight:400;line-height:1.14;letter-spacing:-.03em}h3{font-size:21px;line-height:1.3}.section-heading p{color:var(--muted);max-width:460px}.services{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.services article{background:var(--paper);padding:0;display:flex;flex-direction:column}.service-body{padding:26px 25px 30px}.services h3{margin-top:18px}.services p{font-size:15px;color:var(--muted)}.number{font-size:13px;color:#8f603b;letter-spacing:.15em}.dark{background:var(--dark);color:var(--cream)}.dark .eyebrow{color:#e9b27d}.dark p:not(.eyebrow){max-width:800px;color:#e1d4c8}.reviews{max-width:1100px;margin:auto;text-align:center}.reviews .actions{justify-content:center}.cta{margin:30px 4vw 70px;background:var(--wood);padding:60px 6vw;display:flex;gap:30px;align-items:center;justify-content:space-between}footer{background:var(--cream);padding:55px 6vw;display:flex;gap:70px;justify-content:space-between;font-size:15px}footer>div:last-child{display:grid;gap:8px}footer strong{font-size:25px;letter-spacing:.15em}footer button{font-size:14px}.compact{display:block;min-height:0;border-bottom:1px solid var(--line)}.compact>div:first-child{padding-top:55px;padding-bottom:50px}.compact h1{font-size:clamp(42px,5vw,70px)}.prose{max-width:1050px}
figure{margin:0;position:relative}figure img{display:block}figcaption{position:absolute;right:10px;bottom:10px;background:#30231ccc;color:#fff;font-size:12px;letter-spacing:.04em;padding:4px 9px;border-radius:3px}
.service-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .5s}.service-photo{overflow:hidden}.services article:hover .service-photo img{transform:scale(1.04)}
.compact.with-photo{display:grid;grid-template-columns:1.1fr .9fr}.hero-photo{min-height:100%}.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.prose h2{margin-top:44px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.card{padding:32px;background:white;border:1px solid var(--line);border-radius:5px;margin-bottom:24px;min-width:0}.card h2{font-size:31px}.work{margin:-32px -32px 26px}.work img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:5px 5px 0 0}label{display:block;font-size:15px;font-weight:600;margin:16px 0}input:not([type=checkbox]),textarea,select{display:block;width:100%;border:1px solid #b8a794;border-radius:3px;padding:12px 13px;background:#fffefa;color:var(--ink);margin-top:6px}input[type=checkbox]{width:20px;height:20px;vertical-align:middle}textarea{resize:vertical}form button{margin-top:14px}.small,time{font-size:14px;color:var(--muted)}.notice{margin:25px 6vw;padding:18px 24px;border-left:4px solid #835627;background:#f0e3cd}.auth{max-width:680px;margin:auto}.auth h1,.portal h1{font-family:Georgia,serif;font-weight:400;line-height:1.1;font-size:clamp(35px,4vw,58px)}.portal-head{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:50px}.portal-head form{margin:0}.portal-head button{margin:0}.project-card{text-decoration:none}.project-card:hover{border-color:var(--ink)}.badge{display:inline-block;padding:6px 12px;border:1px solid #ccb08d;background:#f8eede;border-radius:25px;font-size:14px}.empty{padding:40px;border:1px dashed var(--line)}.project-title{padding:35px 0}.subnav{border-block:1px solid var(--line);padding:20px 0;margin-bottom:30px}.timeline{padding-left:25px}.timeline li{padding-left:18px;border-left:1px solid var(--line);list-style-type:circle;padding-bottom:18px}.text{white-space:pre-wrap;overflow-wrap:anywhere}.order{padding-block:24px;border-bottom:1px solid var(--line)}.chat{padding:28px 0;max-height:600px;overflow:auto}.bubble{padding:20px;background:var(--cream);margin:14px 10% 14px 0;border-radius:8px}.bubble.team{background:#ead5be;margin-right:0;margin-left:10%}.bubble time{display:block}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:15px}td,th{text-align:left;padding:18px;border-bottom:1px solid var(--line);vertical-align:top}td form{display:inline-block;margin-right:10px}details{border:1px solid var(--line);padding:18px;margin:24px 0}summary{cursor:pointer;font-weight:650}.secret{display:block;overflow-wrap:anywhere;word-break:break-all;background:var(--cream);padding:20px}.cookies{position:fixed;z-index:100;bottom:20px;left:20px;right:20px;max-width:740px;background:white;border:1px solid var(--ink);box-shadow:0 8px 70px #30231c33;padding:25px;max-height:85vh;overflow:auto}.cookies h2{font-size:28px;margin:0}.cookies p{font-size:15px}.cookies button{font-size:14px;padding:10px 14px}.cookies .actions{gap:10px}.skip{position:absolute;left:-10000px}.skip:focus{left:10px;top:10px;background:white;padding:10px;z-index:200}.honeypot{position:absolute;left:-9999px}[hidden]{display:none!important}
@media(max-width:950px){header{flex-wrap:wrap}.hero{grid-template-columns:1fr}.signature{display:none}.compact.with-photo{grid-template-columns:1fr}.hero-photo{height:300px;min-height:0;order:2}.hero>div:first-child{padding:65px 6vw}.hero{min-height:0}.services{grid-template-columns:repeat(2,1fr)}.portal-head{display:block}.section-heading{gap:30px}.grid{grid-template-columns:1fr}}
@media(max-width:600px){body{font-size:16px}.topline{font-size:12px}.topline a{white-space:nowrap}header{padding:16px 5vw}nav{gap:16px}nav a{font-size:14px}.brand strong{font-size:22px}.hero h1{font-size:48px}.section{padding:55px 5vw}.section-heading{grid-template-columns:1fr;gap:0}.strip{grid-template-columns:1fr}.strip span{padding:15px;border-bottom:1px solid var(--line)}.services{grid-template-columns:1fr}.services h3{margin-top:20px}.cta,footer{flex-direction:column;align-items:flex-start}.cta{padding:30px}.service-photo img{aspect-ratio:16/10}.card{padding:22px}.work{margin:-22px -22px 22px}.hero-photo{height:220px}.cookies{left:10px;right:10px;bottom:10px;padding:18px}.portal-head .actions{gap:12px}.bubble{margin-right:3%}.bubble.team{margin-left:3%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ===================== Animations & slider d'accueil ===================== */
header{position:relative;z-index:50;background:#fffdf9ee;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:box-shadow .3s,padding .3s}
@media(min-width:951px){header{position:sticky;top:0}header.is-scrolled{box-shadow:0 8px 30px #30231c14}.slide-title .line{white-space:nowrap}}
nav a:not(.outline){position:relative}nav a:not(.outline)::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.7,0,.2,1)}nav a:not(.outline):hover::after{transform:scaleX(1);transform-origin:left}
.button .arrow{display:inline-block;margin-left:8px;transition:transform .3s}.button:hover .arrow{transform:translate(3px,-3px)}
.services article{transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s}.services article:hover{transform:translateY(-4px);box-shadow:0 18px 40px #30231c1f;position:relative;z-index:1}

/* Slider */
.slider{--duration:6500ms;--mx:0;--my:0;position:relative;height:min(86vh,800px);min-height:560px;overflow:hidden;background:var(--dark);color:#fff;isolation:isolate}
.slides,.slide{position:absolute;inset:0}
.slide{opacity:0;visibility:hidden;z-index:0}
.slide.is-active{opacity:1;visibility:visible;z-index:2}
.slide.is-prev{opacity:1;visibility:visible;z-index:1}
.slider.is-ready .slide.is-active{animation:wipe 1.25s cubic-bezier(.77,0,.18,1) both}
@keyframes wipe{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
.slide-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.12)}
.slide.is-active .slide-bg{animation:kenburns calc(var(--duration) + 2s) cubic-bezier(.2,.6,.3,1) forwards}
.slide.is-prev .slide-bg{transform:scale(1);transition:transform 1.2s}
@keyframes kenburns{from{transform:scale(1.14) translateX(1.5%)}to{transform:scale(1.02) translateX(0)}}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(95deg,#1e140ee6 0%,#1e140ead 38%,#1e140e33 70%,#1e140e0d 100%),linear-gradient(0deg,#1e140e99,transparent 35%);z-index:1}
.slide-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;padding:0 6vw 70px;max-width:min(1150px,100%);transform:translate(calc(var(--mx) * -14px),calc(var(--my) * -10px));transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.slide-content .eyebrow{color:#e9b27d;margin-bottom:22px}
.slide-title{font-family:Georgia,serif;font-weight:400;font-size:clamp(44px,5.6vw,92px);line-height:1.04;letter-spacing:-.045em;margin:0 0 28px}
.slide-title .line{display:block;overflow:hidden;padding-bottom:.08em}
.slide-title .line>*{display:inline-block}
.slide-title em{color:#e3a872;font-weight:400}
.slide-text{max-width:560px;color:#f1e6da;font-size:18px;margin:0}
.slide .actions{margin-top:34px}
.button.light{background:#fffdf9;color:var(--ink);border-color:#fffdf9}.button.light:hover{background:var(--wood);border-color:var(--wood);color:#fff}
.slide .tel{color:#fff}
/* Entrée du texte, décalée ligne par ligne */
.slider.is-ready .slide .eyebrow,.slider.is-ready .slide .slide-text,.slider.is-ready .slide .actions{opacity:0;transform:translateY(26px)}
.slider.is-ready .slide .line>*{transform:translateY(110%)}
.slider.is-ready .slide.is-active .eyebrow{animation:rise .8s .45s cubic-bezier(.2,.7,.2,1) forwards}
.slider.is-ready .slide.is-active .line>*{animation:lineup 1s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:.6s}
.slider.is-ready .slide.is-active .line+.line>*{animation-delay:.75s}
.slider.is-ready .slide.is-active .slide-text{animation:rise .9s .95s cubic-bezier(.2,.7,.2,1) forwards}
.slider.is-ready .slide.is-active .actions{animation:rise .9s 1.1s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes lineup{to{transform:translateY(0)}}
.example-tag{position:absolute;z-index:3;right:20px;top:20px;background:#00000066;color:#fff;font-size:12px;padding:4px 9px;border-radius:3px;backdrop-filter:blur(4px)}
/* Interface : compteur, barres de progression, flèches */
.slider-ui{position:absolute;z-index:5;left:6vw;right:6vw;bottom:34px;display:flex;align-items:center;gap:34px}
.slider-count{font-family:Georgia,serif;display:flex;align-items:baseline;gap:8px;min-width:90px}
.slider-count strong{font-size:34px;font-weight:400}.slider-count span{opacity:.6;font-size:15px}
.slider-dots{display:flex;gap:10px;flex:1;max-width:420px}
.dot{flex:1;min-height:24px;padding:0;background:none;border:0;position:relative;cursor:pointer}
.dot::before,.dot .fill{content:"";position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:#ffffff4d}
.dot .fill{background:#fff;transform:scaleX(0);transform-origin:left}
.dot.is-active .fill{animation:progress var(--duration) linear forwards}
.slider.is-paused .dot .fill{animation-play-state:paused}
.dot:hover{background:none}.dot:hover::before{background:#ffffff99}
@keyframes progress{to{transform:scaleX(1)}}
.slider-arrows{display:flex;gap:10px;margin-left:auto}
.arrow-btn{width:52px;height:52px;min-height:0;padding:0;border-radius:50%;background:transparent;border:1px solid #ffffff80;color:#fff;font-size:20px;transition:background .3s,color .3s,transform .3s}
.arrow-btn:hover{background:#fff;color:var(--ink);transform:scale(1.06)}
.slider-badge{position:absolute;z-index:5;right:6vw;bottom:110px;display:flex;align-items:center;gap:14px;padding:14px 20px;background:#fffdf91f;border:1px solid #ffffff33;border-radius:6px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:14px;line-height:1.4;animation:float 6s ease-in-out infinite}
.slider-badge img{width:46px;height:auto;filter:brightness(0) invert(1)}
@keyframes float{50%{transform:translateY(-8px)}}
.slider.is-static .slide,.slider.is-static .slide *{animation:none!important;opacity:1;transform:none!important}
.slider.is-static .slide:not(.is-active){opacity:0}
/* Apparition au défilement */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.services article.reveal.in:hover{transform:translateY(-4px)}
@media(max-width:950px){.slider-badge{display:none}.slide-content{max-width:none}}
@media(max-width:600px){.slider{height:auto;min-height:600px}.slide .tel{display:none}.slide .actions{margin-top:24px}.slide-content .eyebrow{font-size:11px;margin-bottom:14px}.slide::after{background:linear-gradient(0deg,#1e140ef2 0%,#1e140ec7 50%,#1e140e4d 100%)}.slide-content{justify-content:flex-end;padding:0 5vw 100px}.slide-title{font-size:38px;margin-bottom:16px}.slide-text{font-size:15px}.slider-ui{bottom:26px;gap:16px;left:5vw;right:5vw}.slider-count{min-width:0}.slider-count strong{font-size:26px}.arrow-btn{width:44px;height:44px}.example-tag{top:12px;right:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}.slider-badge{animation:none}}

/* ===================== Référencement local : communes, étapes, FAQ ===================== */
.local{background:var(--cream)}
.local-lead{font-weight:650;margin:10px 0 14px}
.towns{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:8px}
.towns li{padding:7px 14px;border:1px solid var(--line);border-radius:30px;background:var(--paper);font-size:14px;transition:border-color .3s,background .3s}
.towns li:hover{border-color:var(--wood);background:#fff}
.checklist{padding-left:0;list-style:none}.checklist li{position:relative;padding:8px 0 8px 30px;border-bottom:1px solid var(--line)}
.checklist li::before{content:"";position:absolute;left:4px;top:18px;width:12px;height:7px;border-left:2px solid var(--wood);border-bottom:2px solid var(--wood);transform:rotate(-45deg)}
.steps{counter-reset:step;list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.steps li{counter-increment:step;padding:22px 22px 22px 70px;position:relative;background:#fff;border:1px solid var(--line);border-radius:5px}
.steps li::before{content:counter(step,decimal-leading-zero);position:absolute;left:22px;top:20px;font-family:Georgia,serif;font-size:26px;color:var(--wood)}
.faq details{margin:0;border:0;border-bottom:1px solid var(--line);padding:0}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;padding:20px 40px 20px 0;position:relative;font-size:18px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:14px;font-size:28px;font-weight:300;color:var(--wood);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 20px;color:var(--muted)}
@media(max-width:600px){.steps{grid-template-columns:1fr}}

/* ===================== Carte de la zone d'intervention ===================== */
.local-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center}
.local-text h2{margin-top:0}
.local-text>p:not(.eyebrow){color:var(--muted)}
.legend{list-style:none;padding:0;margin:28px 0 8px;display:grid;gap:18px}
.legend li{display:flex;gap:16px;align-items:flex-start;font-size:15px;color:var(--muted)}
.legend strong{color:var(--ink);font-size:16px}
.lg{flex:none;width:30px;height:30px;border-radius:50%;margin-top:3px}
.lg-zone{background:#c88c5547;border:2px dashed #9b693f}
.lg-dep{border-radius:6px;border:1.5px solid var(--ink);background:repeating-linear-gradient(45deg,#fffdf9 0 5px,#c88c5540 5px 6.5px)}
.map-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;box-shadow:0 24px 60px #30231c14}
.zone-map{display:block;width:100%;height:auto;border-radius:6px}
.zm-sea{fill:#e6ddd0}
.zm-others{fill:#f4eee6;stroke:#d6c8b6;stroke-width:1}
.zm-dep{fill:#fffdf9;stroke:var(--ink);stroke-width:1.4;stroke-linejoin:round}
.zm-dep-hatch{fill:url(#zm-hatch);stroke:none;pointer-events:none}
.zm-hatch-line{stroke:#c88c55;stroke-width:1.2;opacity:.28}
.zm-zone{fill:#c88c55;fill-opacity:.26}
.zm-zone-line{fill:none;stroke:#9b693f;stroke-width:2;stroke-dasharray:7 7;animation:zm-dash 40s linear infinite}
@keyframes zm-dash{to{stroke-dashoffset:-560}}
.zm-dot{fill:#9b693f;stroke:#fffdf9;stroke-width:1.5;transition:r .2s}
.zm-dot:hover{r:5}
.zm-city circle{fill:#fffdf9;stroke:var(--ink);stroke-width:2}
.zone-map text{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;fill:var(--ink);paint-order:stroke;stroke:#fffdf9;stroke-width:4px;stroke-linejoin:round}
.zone-map .zm-small{font-size:13px;fill:#7a5536}
.zone-map .zm-home-label{font-family:Georgia,serif;font-size:26px;font-weight:700;stroke-width:6px}
.zone-map .zm-sea-label{font-family:Georgia,serif;font-style:italic;font-size:20px;fill:#8f7f6c;stroke:none;letter-spacing:.04em}
.zone-map .zm-dep-label{font-size:12px;letter-spacing:.22em;text-transform:uppercase;fill:#9b693f;stroke-width:5px}
.zm-pin{fill:var(--ink);stroke:#fffdf9;stroke-width:3}
.zm-pin-in{fill:#e3a872}
.zm-pulse{fill:none;stroke:#9b693f;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:zm-pulse 2.8s ease-out infinite}
.zm-pulse2{animation-delay:1.4s}
@keyframes zm-pulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(3.2);opacity:0}}
/* Apparition de la carte : la zone se déploie depuis Saintes */
.map-card .zm-zone,.map-card .zm-zone-line{transform-box:fill-box;transform-origin:center}
.map-card.reveal .zm-zone,.map-card.reveal .zm-zone-line{transform:scale(0);transition:transform 1.4s .35s cubic-bezier(.2,.8,.2,1)}
.map-card.reveal.in .zm-zone,.map-card.reveal.in .zm-zone-line{transform:scale(1)}
.map-card.reveal .zm-dot,.map-card.reveal .zm-city{opacity:0;transition:opacity .6s 1.2s}
.map-card.reveal.in .zm-dot,.map-card.reveal.in .zm-city{opacity:1}
@media(max-width:950px){.local-grid{grid-template-columns:1fr;gap:36px}}
@media(max-width:600px){.map-card{padding:8px}.zone-map text{font-size:20px}.zone-map .zm-small{font-size:17px}.zone-map .zm-home-label{font-size:32px}}
@media(prefers-reduced-motion:reduce){.zm-pulse,.zm-zone-line{animation:none}}

/* ===================== Zones de déplacement ===================== */
.zones{list-style:none;padding:0;margin:28px 0 18px;display:grid;gap:10px}
.zone-item{display:flex;gap:16px;align-items:flex-start;padding:16px 18px;background:#fffdf9;border:1px solid var(--line);border-radius:8px;transition:border-color .3s,box-shadow .3s,transform .3s;cursor:default}
.zone-item.is-active{border-color:#9b693f;box-shadow:0 10px 30px #30231c17;transform:translateX(4px)}
.zone-item p{margin:0}
.zone-head{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.zone-head strong{font-size:16px}
.zone-km{font-size:13px;color:#885c38;font-weight:650;letter-spacing:.02em}
.zone-towns{font-size:14px;color:var(--muted)}
.zone-fee{font-size:14px;font-weight:650;color:var(--ink);margin-top:4px!important}
.zone-badge{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-size:18px;color:#fff;margin-top:1px}
.zb-1{background:#9b693f}.zb-2{background:#c88c55}.zb-3{background:#fffdf9;color:var(--ink);border:1.5px solid var(--ink);background-image:repeating-linear-gradient(45deg,transparent 0 5px,#c88c5559 5px 6.5px)}
.zone-finder{margin:6px 0 10px;padding:18px;background:var(--ink);color:#fff;border-radius:8px}
.zone-finder label{margin:0 0 10px;font-size:15px}
.zone-finder input{margin:0;background:#fffdf9;border-color:transparent}
.zone-result{margin:12px 0 0;font-size:14px;color:#f1e6da;min-height:1.4em}
.zone-result strong{display:inline-block;padding:2px 10px;border-radius:20px;background:#e3a872;color:var(--ink);margin-right:4px}
.zone-result.zr-1 strong{background:#c88c55;color:#fff}
/* Anneaux de la carte */
.zm-ring{stroke-width:2;transition:fill-opacity .35s,opacity .35s;transform-box:fill-box;transform-origin:center}
.zm-ring.zm-z1{animation:zm-dash 40s linear infinite}
.zm-ring.zm-z2{animation:zm-dash 60s linear infinite reverse}
.zm-ring-label text{font-size:14px!important;font-weight:700;fill:#fff!important;stroke:none!important;letter-spacing:.03em}
.zm-dep-hatch{transition:fill .35s}
#zone[data-active="1"] .zm-z1{fill-opacity:.62}
#zone[data-active="1"] .zm-z2{fill-opacity:.08}
#zone[data-active="2"] .zm-z2{fill-opacity:.42}
#zone[data-active="2"] .zm-z1{fill-opacity:.12}
#zone[data-active="3"] .zm-ring{fill-opacity:.06}
#zone[data-active="3"] .zm-dep-hatch{fill:#c88c5552}
.map-card.reveal .zm-ring{transform:scale(0);transition:transform 1.4s .35s cubic-bezier(.2,.8,.2,1),fill-opacity .35s}
.map-card.reveal .zm-ring.zm-z2{transition-delay:.55s}
.map-card.reveal.in .zm-ring{transform:scale(1)}
.map-card.reveal .zm-ring-label{opacity:0;transition:opacity .6s 1.5s}
.map-card.reveal.in .zm-ring-label{opacity:1}
@media(max-width:600px){.zone-item{padding:14px}}

/* ===================== Formulaire de contact ===================== */
.contact-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:start}
.contact-card{position:sticky;top:110px;background:var(--dark);color:#f1e6da;padding:40px;border-radius:10px;overflow:hidden;isolation:isolate}
.contact-card::after{content:"";position:absolute;right:-60px;bottom:-60px;width:220px;height:220px;background:url(/assets/logo.png) center/contain no-repeat;opacity:.07;filter:brightness(0) invert(1);z-index:-1}
.contact-card .eyebrow{color:#e9b27d}
.contact-card h2{color:#fff;margin:0 0 18px}
.contact-card>p:not(.eyebrow){color:#d9cabb;font-size:16px}
.contact-line{display:flex;gap:16px;align-items:center;padding:16px 0;border-top:1px solid #ffffff1f;text-decoration:none;color:#fff;font-size:18px}
.contact-line small{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#e9b27d}
.contact-line a{color:#e9b27d}
a.contact-line:hover .ci{background:#e3a872;color:var(--ink)}
.ci{flex:none;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid #ffffff40;font-size:18px;transition:background .3s,color .3s}
.contact-form{background:#fff;border:1px solid var(--line);border-radius:10px;padding:40px;box-shadow:0 24px 60px #30231c12}
.form-title{margin:0;font-size:32px}
.form-sub{margin:6px 0 18px;font-size:14px;color:var(--muted)}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.f{display:block;margin:0 0 18px;position:relative}
.f>span,.chips legend{display:block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#885c38;margin-bottom:8px}
.contact-form input:not([type=radio]),.contact-form textarea{margin:0;background:var(--paper);border:1.5px solid var(--line);border-radius:6px;padding:14px 15px;transition:border-color .25s,box-shadow .25s,background .25s}
.contact-form input:not([type=radio]):hover,.contact-form textarea:hover{border-color:#cdb79e}
.contact-form input:not([type=radio]):focus,.contact-form textarea:focus{outline:none;border-color:var(--wood);background:#fff;box-shadow:0 0 0 4px #c88c5533}
.contact-form input:user-invalid,.contact-form textarea:user-invalid{border-color:#b4532a}
.contact-form textarea::placeholder{color:#a8998a}
.chips{border:0;padding:0;margin:4px 0 18px;display:flex;flex-wrap:wrap;gap:8px}
.chips legend{padding:0;margin-bottom:10px;width:100%}
.chip{margin:0;cursor:pointer;position:relative}
.chip input{position:absolute;left:0;top:0;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}
.chip span{display:inline-block;padding:9px 15px;border:1.5px solid var(--line);border-radius:30px;background:var(--paper);font-size:14px;font-weight:600;transition:all .2s}
.chip:hover span{border-color:var(--wood)}
.chip input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}
.chip input:focus-visible+span{outline:3px solid #926027;outline-offset:2px}
.f-submit{width:100%;min-height:56px;font-size:17px;margin:6px 0 14px;background:var(--wood);border-color:var(--wood);transition:background .3s,transform .2s}
.f-submit:hover{background:var(--ink);border-color:var(--ink)}
.f-submit:active{transform:scale(.99)}
.f-submit:hover .arrow{transform:translate(3px,-3px)}
.zone-hint{display:block;font-style:normal;font-size:13px;margin-top:7px;font-weight:600;color:var(--muted);min-height:1em}
.zone-hint.zh-1{color:#6f8a3c}.zone-hint.zh-2{color:#9b693f}.zone-hint.zh-3{color:#a4512c}
.notice{border-radius:8px;border-left-width:5px;font-weight:600}
@media(max-width:950px){.contact-wrap{grid-template-columns:1fr}.contact-card{position:static}}
@media(max-width:600px){.f-row{grid-template-columns:1fr;gap:0}.contact-form,.contact-card{padding:24px}}

/* ===================== ESPACE CLIENT ===================== */
.pw-0{width:0%}.pw-5{width:5%}.pw-10{width:10%}.pw-15{width:15%}.pw-20{width:20%}.pw-25{width:25%}.pw-30{width:30%}.pw-35{width:35%}.pw-40{width:40%}.pw-45{width:45%}.pw-50{width:50%}.pw-55{width:55%}.pw-60{width:60%}.pw-65{width:65%}.pw-70{width:70%}.pw-75{width:75%}.pw-80{width:80%}.pw-85{width:85%}.pw-90{width:90%}.pw-95{width:95%}.pw-100{width:100%}
.portal{padding:34px 6vw 80px;max-width:1500px;margin:0 auto}
.portal-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:14px 18px;background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:26px}
.portal-who{display:flex;gap:12px;align-items:center}.portal-who small{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#885c38;font-weight:700}
.avatar{width:42px;height:42px;border-radius:50%;background:var(--ink);color:#e3a872;display:grid;place-items:center;font-family:Georgia,serif;font-size:20px}
.portal-nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.portal-nav a{padding:9px 14px;border-radius:30px;text-decoration:none;font-weight:600;font-size:15px}
.portal-nav a:hover{background:var(--cream)}.portal-nav a.on{background:var(--ink);color:#fff}
.inline-form{display:inline;margin:0}
.link-btn{background:none;border:0;color:var(--muted);font-weight:600;padding:9px 12px;min-height:0;font-size:15px}.link-btn:hover{background:none;color:var(--ink);text-decoration:underline}
.portal h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(32px,3.6vw,52px);line-height:1.08;letter-spacing:-.03em;margin:0}
.portal h2{font-size:24px;margin:0 0 16px}
.dash-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:6px 0 26px;flex-wrap:wrap}
.dash-head .eyebrow{margin-bottom:10px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:28px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;text-decoration:none;display:block;transition:transform .2s,box-shadow .2s}
a.kpi:hover{transform:translateY(-2px);box-shadow:0 10px 30px #30231c14}
.kpi span{display:block;font-family:Georgia,serif;font-size:32px;line-height:1.1}
.kpi small{color:var(--muted);font-size:13px}
.kpi-alert{border-color:#e3a872;background:linear-gradient(135deg,#fff,#fbf1e6)}.kpi-alert span{color:#9b693f}
.dash-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
.dash-grid aside{display:grid;gap:18px;position:sticky;top:100px}
.h-sec{font-size:13px!important;letter-spacing:.14em;text-transform:uppercase;color:#885c38;margin:0 0 12px!important}
.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px;margin-bottom:22px}
.panel>summary{font-weight:700;cursor:pointer}
.panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.panel-dark{background:var(--dark);color:#e8dccf;border-color:var(--dark)}.panel-dark h2{color:#fff}.panel-dark a{color:#e3a872}
.muted{color:var(--muted)}
.empty{padding:30px;border:1.5px dashed var(--line);border-radius:12px;text-align:center;color:var(--muted);margin-bottom:22px}
.project-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:28px}
.pcard{display:block;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;transition:transform .25s,box-shadow .25s,border-color .25s}
.pcard:hover{transform:translateY(-3px);box-shadow:0 16px 40px #30231c17;border-color:#d8c3aa}
.pcard h3{margin:12px 0 4px;font-size:19px}
.pcard-top{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.pcard-meta{color:var(--muted);font-size:14px;margin:0 0 14px}
.pcard-step{font-size:14px;margin:10px 0 0;color:var(--muted)}.pcard-step strong{color:var(--ink)}
.status{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:20px}
.st-actif{background:#e9f0dc;color:#4f6b25}.st-termine{background:#ece4d8;color:#6a5544}.st-suspendu{background:#f6e3d4;color:#9a4f22}
.unread{background:#c88c55;color:#fff;font-size:12px;font-weight:700;padding:4px 10px;border-radius:20px;animation:pulse-badge 2s infinite}
@keyframes pulse-badge{50%{box-shadow:0 0 0 6px #c88c5530}}
.pbar{height:8px;border-radius:10px;background:#efe6da;overflow:hidden}
.pbar-big{height:14px;margin:6px 0 26px}
.pbar-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b67a45,#e3a872);position:relative;overflow:hidden;animation:grow 1.2s cubic-bezier(.2,.8,.2,1) both}
.pbar-fill::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#ffffff66,transparent);transform:translateX(-100%);animation:shine 2.8s 1.2s infinite}
@keyframes grow{from{width:0}}@keyframes shine{to{transform:translateX(100%)}}
.appt-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.appt-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.appt-list li.past{opacity:.55}
.appt-list a{text-decoration:none;display:block;width:100%}
.appt-date{display:block;font-size:12px;font-weight:700;color:#9b693f;text-transform:uppercase;letter-spacing:.05em}
.appt-list small{display:block;color:var(--muted);font-size:13px}
.todo{list-style:none;padding:0;margin:0;display:grid;gap:8px}.todo li a{display:block;text-decoration:none;padding:10px 12px;border-radius:8px;background:var(--paper);font-weight:600;font-size:15px}.todo li a:hover{background:var(--cream)}.todo small{display:block;font-weight:400;color:var(--muted);font-size:13px}
.todo.plain li{padding:6px 0 6px 22px;position:relative;font-size:15px}.todo.plain li::before{content:"✓";position:absolute;left:0;color:#6f8a3c}
.pform .f{margin-bottom:14px}
.pform input:not([type=checkbox]):not([type=file]),.pform textarea,.pform select{margin:0;background:var(--paper);border:1.5px solid var(--line);border-radius:8px;padding:12px 13px}
.pform input:focus,.pform textarea:focus,.pform select:focus{outline:none;border-color:var(--wood);box-shadow:0 0 0 4px #c88c5533;background:#fff}
.pform input[type=file]{padding:14px;border:1.5px dashed #cdb79e;border-radius:8px;width:100%;background:var(--paper);margin:0}
.new-client{border:1.5px dashed #e3cdb4;border-radius:10px;padding:14px 16px 2px;margin:0 0 16px;background:#fdf8f2}.new-client legend{font-size:13px;font-weight:700;color:#885c38;padding:0 6px}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:500;font-size:15px;margin:12px 0}.check input{flex:none;margin-top:3px}
button.mini,.mini{min-height:0;padding:6px 12px;font-size:13px;border-radius:6px}
.ghost{background:transparent!important;color:var(--ink)!important;border:1px solid var(--line)!important}.ghost:hover{border-color:var(--ink)!important}
.outline.mini{padding:6px 12px}
.back{display:inline-block;margin-bottom:14px;text-decoration:none;color:var(--muted);font-weight:600}
.project-head{display:flex;justify-content:space-between;gap:30px;align-items:flex-start;margin-bottom:22px}
.project-head h1{margin:10px 0 6px}
.big-pct{flex:none;width:150px;height:150px;border-radius:50%;background:conic-gradient(from 0deg,#c88c55 0,#c88c55 var(--p,0%),#efe6da 0);display:grid;place-items:center;text-align:center;position:relative}
.big-pct::before{content:"";position:absolute;inset:12px;border-radius:50%;background:var(--paper)}
.big-pct strong,.big-pct span{position:relative}.big-pct strong{font-family:Georgia,serif;font-size:40px;font-weight:400;line-height:1;display:block}.big-pct small{font-size:18px}
.big-pct>div{position:relative;display:grid;justify-items:center;gap:4px}.big-pct span{font-size:11px;color:var(--muted);max-width:96px;line-height:1.25}
.stepper{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:4px;counter-reset:s}
.stepper li{position:relative;text-align:center;padding:0 6px 6px}
.stepper li::before{content:"";position:absolute;top:19px;left:-50%;width:100%;height:3px;background:#efe6da;z-index:0}
.stepper li:first-child::before{display:none}
.stepper li.done::before,.stepper li.current::before{background:#c88c55}
.stepper .dot{position:relative;z-index:1;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;margin:0 auto 8px;background:#fff;border:2px solid #e3d5c4;font-weight:700;color:var(--muted);transition:transform .3s}
.stepper li.done .dot{background:#c88c55;border-color:#c88c55;color:#fff}
.stepper li.current .dot{border-color:#c88c55;color:#9b693f;box-shadow:0 0 0 6px #c88c5526;animation:pulse-badge 2s infinite}
.stepper .lbl{display:block;font-size:13px;font-weight:600;line-height:1.3}
.stepper small{display:block;font-size:11px;color:var(--muted)}
.step-tools{display:flex;gap:3px;justify-content:center;flex-wrap:wrap;margin-top:6px;opacity:.25;transition:opacity .2s}
.stepper li:hover .step-tools,.step-tools:focus-within{opacity:1}
.step-tools .mini{padding:3px 7px;font-size:11px}
.add-step{display:flex;gap:8px;margin-top:16px}.add-step input{margin:0;flex:1;padding:8px 12px;border:1.5px dashed var(--line);border-radius:8px;background:var(--paper)}
.project-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:24px;align-items:start}
.chat-col{position:sticky;top:100px}
.doc-kind{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#885c38;margin:22px 0 10px;padding-top:14px;border-top:1px solid var(--line)}
.panel-head+.doc-kind{border-top:0;padding-top:0}
.doc{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:10px;margin-bottom:10px;background:var(--paper);transition:border-color .2s}
.doc:hover{border-color:#d8c3aa}.doc-ok{border-color:#c4d6a6;background:#f7faf1}
.doc-ico{font-size:24px}.doc-main strong{display:block}.doc-main small{display:block;color:var(--muted);font-size:13px}
.doc-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pill{display:inline-block;margin-top:6px;font-size:12px;font-weight:700;padding:3px 10px;border-radius:20px}
.pill.ok{background:#e9f0dc;color:#4f6b25}.pill.wait{background:#fbeedd;color:#9b693f}.pill.off{background:#eee;color:#777}
.accept{grid-column:1/-1;background:#fff;border:1.5px solid #e3a872;border-radius:10px;padding:0;margin:4px 0 0}
.accept summary{padding:12px 16px;font-weight:700;color:#9b693f;cursor:pointer;list-style:none}.accept summary::before{content:"✍ "}
.accept form{padding:0 16px 16px}.accept p{font-size:15px}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:8px}
.thumb{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .4s}.thumb a{display:block;overflow:hidden}.thumb:hover img{transform:scale(1.05)}
.thumb figcaption{padding:8px 10px;font-size:13px;font-weight:600;position:static;background:none;color:var(--ink)}.thumb figcaption small{display:block;font-weight:400;color:var(--muted)}
.thumb .inline-form{display:block;padding:0 10px 10px}
.pdf-tile{display:grid!important;place-items:center;aspect-ratio:4/3;background:var(--cream);font-weight:800;color:#9b693f;text-decoration:none;font-size:22px}
.tool{margin-top:16px;border:1.5px dashed var(--line);border-radius:10px;padding:0}
.tool>summary{padding:12px 16px;cursor:pointer;font-weight:700;color:#885c38;list-style:none}.tool[open]>summary{border-bottom:1px dashed var(--line)}
.tool>form{padding:16px}
.timeline{list-style:none;padding:0;margin:0}.timeline li{border-left:2px solid #e3d5c4;padding:0 0 18px 20px;position:relative}
.timeline li::before{content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:#c88c55;border:2px solid #fff}
.timeline time{font-size:12px;color:#9b693f;font-weight:700}.timeline p{margin:4px 0 0}
.review-banner{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;background:linear-gradient(120deg,var(--dark),#4a3427);color:#f1e6da;border-radius:12px;padding:22px 26px;margin-bottom:22px}
.review-banner p{margin:4px 0 0;color:#d9cabb}
.review-admin{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);flex-wrap:wrap}
.chat-panel{display:flex;flex-direction:column;margin:0}
.live{font-size:12px;color:#6f8a3c;font-weight:700}
.chat{height:440px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:10px;scroll-behavior:smooth}
.msg{max-width:85%;padding:10px 14px;border-radius:14px 14px 14px 4px;background:#fff;border:1px solid var(--line);align-self:flex-start}
.msg.mine{align-self:flex-end;background:var(--ink);color:#fff;border-color:var(--ink);border-radius:14px 14px 4px 14px}
.msg.team:not(.mine){background:#fbf1e6;border-color:#ecd5bb}
.msg p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px}.msg small{display:block;font-size:11px;opacity:.65;margin-top:4px}
.msg-new{animation:pop .35s cubic-bezier(.2,.9,.3,1.3)}@keyframes pop{from{transform:scale(.9);opacity:0}}
.chat-form{display:flex;gap:8px;margin-top:10px;align-items:flex-end}
.chat-form textarea{margin:0;flex:1;resize:none;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}
.chat-form textarea:focus{outline:none;border-color:var(--wood)}
.chat-form button{width:48px;height:48px;min-height:0;padding:0;border-radius:50%;background:var(--wood);border-color:var(--wood);font-size:18px}
.ptable td,.ptable th{padding:12px 10px}.ptable small{color:var(--muted)}
.row-actions{white-space:nowrap}.row-actions .inline-form{margin-right:4px}
.lead{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.lead small{display:block;color:var(--muted);font-size:13px}.lead p{margin:6px 0 0;font-size:15px}
.invite-box{background:#fbf1e6;border:1.5px solid #e3a872;border-radius:10px;padding:14px 16px;margin-bottom:20px;font-size:15px}.invite-box input{margin-top:8px;font-family:monospace;font-size:13px;background:#fff}
/* Connexion */
.auth-wrap{min-height:calc(100vh - 260px);display:grid;place-items:center;padding:50px 5vw;background:radial-gradient(circle at 20% 10%,#f6ead9 0,transparent 45%),radial-gradient(circle at 90% 90%,#efe2d0 0,transparent 40%)}
.auth-card{width:min(480px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;padding:40px;box-shadow:0 30px 80px #30231c1a}
.auth-card h1{font-family:Georgia,serif;font-weight:400;font-size:36px;line-height:1.1;margin:0 0 12px;letter-spacing:-.02em}
.auth-card .f>span{display:block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#885c38;margin-bottom:8px}
.auth-links{margin:6px 0 4px;font-size:15px}
.secure-note{margin:22px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);text-align:center}
.mfa-steps{padding-left:20px;font-size:15px}.mfa-steps li{margin-bottom:8px}
.otp{font-size:24px!important;letter-spacing:.4em;text-align:center;font-family:monospace}
/* Pages légales */
.legal{max-width:900px}.legal h2{font-size:26px;margin-top:40px;scroll-margin-top:100px}.legal-meta{color:var(--muted);font-style:italic}
.legal-toc{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.legal-toc a{padding:6px 12px;border:1px solid var(--line);border-radius:20px;font-size:14px;text-decoration:none}.legal-toc a:hover{border-color:var(--wood)}
.legal-box{background:var(--cream);border-left:4px solid var(--wood);padding:18px 20px;border-radius:6px;font-size:15px;line-height:1.8}
@media(max-width:1100px){.project-grid{grid-template-columns:minmax(0,1fr)}.chat-col{position:static}}
@media(max-width:950px){.dash-grid{grid-template-columns:1fr}.dash-grid aside{position:static}.project-head{flex-direction:column-reverse;gap:16px}.big-pct{width:110px;height:110px}.big-pct strong{font-size:30px}}
@media(max-width:600px){.portal{padding:20px 4vw 60px}.panel{padding:18px}.doc{grid-template-columns:auto 1fr}.doc-actions{grid-column:1/-1;justify-content:flex-start}.stepper{grid-template-columns:1fr;text-align:left}.stepper li{display:grid;grid-template-columns:40px 1fr;gap:0 12px;text-align:left;padding-bottom:14px}.stepper li::before{left:19px;top:-50%;width:3px;height:100%}.stepper .dot{margin:0;grid-row:span 3}.step-tools{justify-content:flex-start;opacity:1}.auth-card{padding:26px}.chat{height:360px}}
.pp-0{--p:0%}.pp-5{--p:5%}.pp-10{--p:10%}.pp-15{--p:15%}.pp-20{--p:20%}.pp-25{--p:25%}.pp-30{--p:30%}.pp-35{--p:35%}.pp-40{--p:40%}.pp-45{--p:45%}.pp-50{--p:50%}.pp-55{--p:55%}.pp-60{--p:60%}.pp-65{--p:65%}.pp-70{--p:70%}.pp-75{--p:75%}.pp-80{--p:80%}.pp-85{--p:85%}.pp-90{--p:90%}.pp-95{--p:95%}.pp-100{--p:100%}

/* ===================== Tableau de bord : recherche, clients ===================== */
.searchbar{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:6px 6px 6px 18px;margin:0 0 22px;transition:border-color .2s,box-shadow .2s}
.searchbar:focus-within{border-color:var(--wood);box-shadow:0 0 0 4px #c88c5526}
.searchbar>span{font-size:22px;color:#9b693f;line-height:1}
.searchbar input{border:0!important;margin:0!important;background:transparent!important;padding:12px 4px!important;font-size:16px;box-shadow:none!important;flex:1;min-width:0}
.searchbar input:focus{outline:none}
.searchbar button{min-height:44px;border-radius:10px}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.panel-form{padding:0}.panel-form>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;font-size:18px;list-style:none;color:var(--ink)}
.panel-form>summary small{font-weight:400;color:var(--muted);font-size:14px}.panel-form[open]>summary{border-bottom:1px solid var(--line)}
.panel-form>form{padding:22px 24px}.panel-form>summary::-webkit-details-marker{display:none}
.client-list{list-style:none;padding:0;margin:0;display:grid;gap:4px}
.client-list a{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:10px;text-decoration:none;transition:background .2s}
.client-list a:hover{background:var(--cream)}
.cl-main{flex:1;min-width:0}.cl-main strong{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cl-main small{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.avatar.sm{width:34px;height:34px;font-size:15px;flex:none}.avatar.lg{width:72px;height:72px;font-size:32px;flex:none}
.dot-status{width:10px;height:10px;border-radius:50%;flex:none}.ds-1{background:#7fa04a}.ds-0{background:#e3a872}.ds--1{background:#bbb}
.clients-table tbody tr{cursor:pointer;transition:background .15s}.clients-table tbody tr:hover{background:#fbf6ef}
.cl-link{display:flex;align-items:center;gap:10px;text-decoration:none}
.pager{display:flex;gap:6px;margin-top:16px;flex-wrap:wrap}.pager a{min-width:38px;text-align:center;padding:7px 10px;border:1px solid var(--line);border-radius:8px;text-decoration:none;font-weight:600}.pager a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.client-head{display:flex;align-items:center;gap:20px;margin:6px 0 24px;flex-wrap:wrap}.client-head h1{margin:2px 0 6px}.client-head>div:nth-child(2){flex:1;min-width:240px}
.client-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
@media(max-width:600px){.searchbar{padding-left:12px}.searchbar button{padding:0 14px}.clients-table th:nth-child(2),.clients-table td:nth-child(2),.clients-table th:nth-child(4),.clients-table td:nth-child(4){display:none}}

/* ===================== DEVIS & FACTURES ===================== */
.subtabs{display:flex;gap:4px;margin:-6px 0 22px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.subtabs a{padding:10px 16px;text-decoration:none;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.subtabs a.on{color:var(--ink);border-color:var(--wood)}
.head-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.filters select,.filters input{margin:0;width:auto;min-width:160px;padding:9px 12px;border:1.5px solid var(--line);border-radius:8px;background:#fff}
.filters input[type=search]{flex:1;min-width:200px}
.seg{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px}
.seg a{padding:7px 14px;border-radius:8px;text-decoration:none;font-weight:600;font-size:14px}.seg a.on{background:var(--ink);color:#fff}
.num{text-align:right!important;white-space:nowrap}
.bills-table tbody tr{cursor:pointer}.bills-table tbody tr:hover{background:#fbf6ef}
.tag-pro{font-size:10px;font-weight:800;letter-spacing:.08em;background:#e8eef7;color:#33507a;padding:2px 6px;border-radius:4px}
.bs-brouillon{background:#eee;color:#666}.bs-emis{background:#fbeedd;color:#9b693f}.bs-accepte,.bs-paye{background:#e9f0dc;color:#4f6b25}.bs-refuse,.bs-annule{background:#f6e0dc;color:#9a3b22}
.bill-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.bill-grid .panel{margin-bottom:22px}
.pro-fields{background:#f3f6fa;border:1px dashed #c9d5e6;border-radius:10px;padding:12px 14px 0;margin-bottom:14px}
.line-tools{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.line-tools select{margin:0;width:auto;padding:7px 10px;border:1.5px solid var(--line);border-radius:8px;background:#fff;font-size:14px;max-width:340px}
.lines-head,.bl{display:grid;grid-template-columns:minmax(0,1fr) 80px 90px 110px 110px 92px;gap:8px;align-items:start}
.lines-head{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#885c38;padding:10px 8px 6px;border-bottom:2px solid var(--line)}
.lines-head span:nth-child(n+2):nth-child(-n+5){text-align:right}
.bl{padding:10px 8px;border-bottom:1px solid var(--line)}
.bl input,.bl select,.bl textarea{margin:0!important;padding:8px 9px!important;border:1.5px solid transparent!important;border-radius:6px!important;background:var(--paper)!important;font-size:15px}
.bl input:focus,.bl textarea:focus,.bl select:focus{border-color:var(--wood)!important;background:#fff!important;outline:none}
.bl textarea{resize:none;overflow:hidden;font-size:13px;color:var(--muted);margin-top:4px!important;min-height:34px}
.bl [data-n=label]{font-weight:700}
.bl .num{text-align:right}
.bl-total{padding:9px 4px;text-align:right;font-weight:700;white-space:nowrap}
.bl-act{display:flex;gap:2px;justify-content:flex-end}.bl-act .mini{padding:5px 8px}
.bl-section{grid-template-columns:minmax(0,1fr) 92px;background:var(--cream);border-radius:6px;margin-top:8px}
.bl-section [data-n=label]{font-size:16px;background:transparent!important}
.bl-text{grid-template-columns:minmax(0,1fr) 92px}.bl-text [data-n=label]{font-weight:400;font-style:italic}
.bill-total{display:flex;justify-content:flex-end;align-items:baseline;gap:14px;flex-wrap:wrap;padding:18px 8px 0}
.bill-total strong{font-family:Georgia,serif;font-size:30px;font-weight:400}.bill-total small{width:100%;text-align:right;color:var(--muted)}
.sticky-actions{position:sticky;bottom:0;z-index:20;display:flex;gap:10px;justify-content:flex-end;padding:14px 18px;background:#fffdf9ee;backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:12px;box-shadow:0 -10px 30px #30231c12;margin-bottom:18px}
.danger-zone{display:block;text-align:right}
.bill-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:22px}
.bill-amount{background:var(--dark);color:#fff;border-radius:12px;padding:16px 22px;text-align:right;min-width:220px}
.bill-amount small{display:block;color:#d9cabb;font-size:12px}.bill-amount strong{display:block;font-family:Georgia,serif;font-size:34px;font-weight:400;color:#e3a872}
.bill-lines .sec td{background:var(--cream)}
.bill-lines tfoot td{border-bottom:0;padding-top:10px}.bill-lines .tot td{font-weight:800;font-size:17px;border-top:2px solid var(--ink)}
.action-stack{display:grid;gap:8px}.action-stack form{margin:0}.wide{width:100%}
.inline-input{display:flex;gap:8px;align-items:center}.inline-input input{width:80px!important;margin:0!important;padding:8px 10px;border:1.5px solid var(--line);border-radius:8px}
.acompte-form .f,.pay-form .f{margin-bottom:8px}.acompte-form .f>span:first-child,.pay-form .f>span{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#885c38;display:block;margin-bottom:6px}
.pay-form input,.pay-form select{margin:0;padding:9px 11px;border:1.5px solid var(--line);border-radius:8px;width:100%}
.months{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;align-items:end}
.month{text-align:center}.mbar{height:120px;background:#f5efe7;border-radius:6px;display:flex;align-items:flex-end;overflow:hidden}
.mfill{display:block;width:100%;background:linear-gradient(180deg,#e3a872,#b67a45);border-radius:6px 6px 0 0}
.months .mfill.pw-0{height:0}
.month small{display:block;color:var(--muted);font-size:12px;margin-top:6px}.month b{display:block;font-size:11px}
@media(max-width:1000px){.bill-grid{grid-template-columns:1fr}.lines-head{display:none}.bl{grid-template-columns:1fr 1fr 1fr;}.bl-main{grid-column:1/-1}.bl-total{grid-column:span 2;text-align:left}.bl-section,.bl-text{grid-template-columns:1fr auto}}
@media(max-width:600px){.months{grid-template-columns:repeat(6,1fr)}.sticky-actions{flex-direction:column}}
.mfill.pw-0{height:0%;width:100%}.mfill.pw-5{height:5%;width:100%}.mfill.pw-10{height:10%;width:100%}.mfill.pw-15{height:15%;width:100%}.mfill.pw-20{height:20%;width:100%}.mfill.pw-25{height:25%;width:100%}.mfill.pw-30{height:30%;width:100%}.mfill.pw-35{height:35%;width:100%}.mfill.pw-40{height:40%;width:100%}.mfill.pw-45{height:45%;width:100%}.mfill.pw-50{height:50%;width:100%}.mfill.pw-55{height:55%;width:100%}.mfill.pw-60{height:60%;width:100%}.mfill.pw-65{height:65%;width:100%}.mfill.pw-70{height:70%;width:100%}.mfill.pw-75{height:75%;width:100%}.mfill.pw-80{height:80%;width:100%}.mfill.pw-85{height:85%;width:100%}.mfill.pw-90{height:90%;width:100%}.mfill.pw-95{height:95%;width:100%}.mfill.pw-100{height:100%;width:100%}
.f>span.inline-input{display:flex;gap:8px;align-items:center;font-size:15px;letter-spacing:0;text-transform:none;color:var(--ink);margin:0}
.chat-hint{margin:6px 2px 0;font-size:.78rem;color:var(--muted,#706256)}
@media (hover:none){.chat-hint{display:none}}
/* Date d'intervention + archives */
.plan .plan-card{border-radius:10px;padding:16px 18px;margin:6px 0 12px;border:1px solid var(--line);background:#fffefa;display:grid;gap:4px}
.plan .plan-card small{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.plan .plan-card strong{font-size:20px;font-family:Georgia,serif;font-weight:400}
.plan .plan-card.ok{border-color:#b9cf98;background:#f4f8ec}
.plan .plan-card.wait{border-color:#e7cfae;background:#fdf6ec}
.plan .plan-card.alert{border-color:var(--wood);background:#fbefe2;box-shadow:inset 4px 0 0 var(--wood)}
.plan .plan-card .doc-actions{margin-top:6px}
.plan-tools{margin-bottom:6px}
.plan-history{border:0;padding:0;margin:14px 0 0;font-size:14px;color:var(--muted)}
.plan-history ul{margin:8px 0 0;padding-left:18px}
.plan-history li span{font-variant-numeric:tabular-nums}
.link-btn.small{font-size:13px;min-height:0;padding:4px 0;margin-top:8px}
.finish-box{align-self:flex-start}
.archived-banner{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:#efe8de;border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:22px}
.archived-banner>span{font-size:26px}
.archived-banner>div{flex:1;min-width:220px}
.archived-banner p{margin:4px 0 0}
.pcard-arch{opacity:.86}
.status.st-termine{background:#e6e0d7;color:#5d5045}
.mini-tabs{margin:0;border:0}
.mini-tabs a{padding:6px 10px;font-size:14px}
.mini-tabs a.on{border-bottom-color:var(--wood);color:var(--ink)}
.sec-head{flex-wrap:wrap}
/* Demandes de devis */
.lead-card{display:grid;grid-template-columns:1fr 240px;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}
.lead-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.lead-top strong{font-size:18px}
.lead-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:10px 0;font-size:14px}
.lead-info div{min-width:0}.lead-info dt{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.lead-info dd{margin:0;overflow-wrap:anywhere}
.lead-msg{background:#fffefa;border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:0}
.lead-actions{display:flex;flex-direction:column;gap:12px}
.lead-actions .pform{margin:0}.lead-actions button{width:100%;margin-top:0}
.lead-actions .check{margin:6px 0 0;font-weight:500}
.pill.off{background:#eee;color:#777}
@media (max-width:700px){.lead-card{grid-template-columns:1fr}}
/* ===================== Mode sombre (administration) ===================== */
.theme-toggle{font-size:18px;width:40px;height:40px;padding:0;border-radius:50%;display:inline-grid;place-items:center}
.theme-toggle:hover{background:var(--cream);color:var(--ink)}
.theme-toggle .tt-sun,html.theme-dark .theme-toggle .tt-moon{display:none}
html.theme-dark .theme-toggle .tt-sun{display:inline}
html.theme-dark{--paper:#15110e;--cream:#251e19;--line:#3a3029;--ink:#efe5da;--muted:#ad9d8c;--wood:#d39c68;--dark:#0d0a08;--surface:#1e1814;--surface2:#28201b;--accent:#e6ad78;color-scheme:dark}
html.theme-dark body{background:var(--paper);color:var(--ink)}
html.theme-dark ::selection{background:#d39c6855}
/* chrome du site */
html.theme-dark .topline{background:#0d0a08;color:#cdbcab}
html.theme-dark header{background:#15110eee;border-color:var(--line)}
html.theme-dark .brand img{filter:brightness(1.6) saturate(.8)}
html.theme-dark footer{background:#100c0a;color:var(--muted)}
html.theme-dark header .outline,html.theme-dark .outline{color:var(--ink);border-color:#6b5a4c}
/* surfaces */
html.theme-dark :is(.panel,.kpi,.pcard,.portal-bar,.card,.auth-card,.searchbar,.seg,.accept,.contact-form,.map-card,.doc,.appt-list li,.thumb,.lead-msg,.plan .plan-card,.steps li){background:var(--surface);border-color:var(--line)}
html.theme-dark :is(.todo li a,.chat,.add-step input,.bl-section,.bill-lines .sec td,.pdf-tile){background:var(--surface2)}
html.theme-dark .todo li a:hover,html.theme-dark .client-list a:hover,html.theme-dark .portal-nav a:hover{background:#30261f}
html.theme-dark :is(.clients-table,.bills-table) tbody tr:hover{background:#261f1a}
html.theme-dark .kpi-alert{background:linear-gradient(135deg,var(--surface),#33241a);border-color:#8a5d38}
html.theme-dark .pcard:hover{border-color:#6b5340;box-shadow:0 16px 40px #0007}
html.theme-dark .panel-dark,html.theme-dark .bill-amount{background:#0f0b09;border-color:#2c231d}
/* textes accentués (brun foncé → cuivre clair) */
html.theme-dark :is(.eyebrow,.portal-who small,.h-sec,.doc-kind,.f>span,.chips legend,.auth-card .f>span,.lines-head,.new-client legend,.tool>summary,.appt-date,.timeline time,.zone-km,.searchbar>span,.accept summary,.kpi-alert span,.acompte-form .f>span:first-child,.pay-form .f>span,.pdf-tile){color:var(--accent)}
html.theme-dark :is(.small,time,.muted,td small,.pcard-meta){color:var(--muted)}
html.theme-dark a{color:inherit}
/* boutons */
html.theme-dark :is(button,.button):not(.link-btn):not(.ghost):not(.outline):not(.arrow-btn){background:var(--wood);border-color:var(--wood);color:#1a120c}
html.theme-dark :is(button,.button):not(.link-btn):not(.ghost):not(.outline):not(.arrow-btn):hover{background:#e3b282;border-color:#e3b282}
html.theme-dark :is(.ghost,button.ghost,a.ghost){background:transparent;color:var(--ink);border-color:#5a4a3d}
html.theme-dark :is(.ghost,button.ghost,a.ghost):hover{background:#2c231d}
html.theme-dark .link-btn{color:var(--muted)}
html.theme-dark .portal-nav a.on,html.theme-dark .seg a.on,html.theme-dark .pager a.on,html.theme-dark .chip input:checked+span{background:var(--wood);color:#1a120c;border-color:var(--wood)}
html.theme-dark .avatar{background:#2c231d;color:var(--accent)}
/* champs */
html.theme-dark :is(input:not([type=checkbox]):not([type=radio]),textarea,select),html.theme-dark :is(.pform,.contact-form,.filters,.line-tools,.chat-form) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea,select){background:#120e0c;color:var(--ink);border-color:#4a3d33}
html.theme-dark :is(input,textarea,select):focus{background:#0f0b09!important;border-color:var(--wood)!important}
html.theme-dark .bl :is(input,select,textarea){background:var(--surface2)!important;color:var(--ink)}
html.theme-dark input::placeholder,html.theme-dark textarea::placeholder{color:#7d6e60}
html.theme-dark input[type=file]{background:var(--surface2);border-color:#5a4a3d}
html.theme-dark input[type=date],html.theme-dark input[type=time],html.theme-dark input[type=datetime-local]{color-scheme:dark}
html.theme-dark .new-client,html.theme-dark .pro-fields{background:#1b1512;border-color:#4a3d33}
html.theme-dark .sticky-actions{background:#15110eee;border-color:var(--line)}
/* états */
html.theme-dark .notice{background:#2c2118;border-color:var(--wood);color:var(--ink)}
html.theme-dark .invite-box{background:#2c2118;border-color:#8a5d38}
html.theme-dark .invite-box input{background:#120e0c}
html.theme-dark :is(.pill.ok,.st-actif,.bs-accepte,.bs-paye){background:#22301a;color:#a9cf7d}
html.theme-dark :is(.pill.wait,.bs-emis){background:#35261a;color:#e6ad78}
html.theme-dark :is(.pill.off,.bs-brouillon){background:#2b2724;color:#a59a90}
html.theme-dark :is(.bs-refuse,.bs-annule,.st-suspendu){background:#3a201a;color:#e69a85}
html.theme-dark :is(.st-termine,.status.st-termine){background:#2e2723;color:#c2b3a4}
html.theme-dark .tag-pro{background:#1d2836;color:#9cb7dc}
html.theme-dark .doc-ok{background:#1b2216;border-color:#3b4d2c}
html.theme-dark .plan .plan-card.ok{background:#1b2216;border-color:#3b4d2c}
html.theme-dark .plan .plan-card.wait{background:#2a2119;border-color:#5c4530}
html.theme-dark .plan .plan-card.alert{background:#2e2118;border-color:var(--wood)}
html.theme-dark .archived-banner{background:#211b17;border-color:var(--line)}
/* progression */
html.theme-dark .pbar,html.theme-dark .stepper li::before,html.theme-dark .mbar{background:#2e2620}
html.theme-dark .big-pct{background:conic-gradient(from 0deg,var(--wood) 0,var(--wood) var(--p,0%),#2e2620 0)}
html.theme-dark .big-pct::before{background:var(--paper)}
html.theme-dark .stepper .dot{background:var(--surface);border-color:#4a3d33;color:var(--muted)}
html.theme-dark .stepper li.done .dot{background:var(--wood);border-color:var(--wood);color:#1a120c}
html.theme-dark .stepper li.current .dot{color:var(--accent)}
html.theme-dark .timeline li{border-color:#3a3029}
html.theme-dark .timeline li::before{border-color:var(--paper)}
/* messagerie */
html.theme-dark .msg{background:var(--surface2);border-color:var(--line);color:var(--ink)}
html.theme-dark .msg.mine{background:#7a5434;border-color:#7a5434;color:#fff6ec}
html.theme-dark .msg.team:not(.mine){background:#2f2219;border-color:#5c4530}
html.theme-dark .msg small{color:#c9b8a6}
html.theme-dark .chat-form textarea{background:#120e0c}
/* tableaux */
html.theme-dark :is(td,th){border-color:var(--line)}
html.theme-dark table{color:var(--ink)}
html.theme-dark code{background:#2a211c;color:var(--accent)}
.lead-target{outline:2px solid var(--wood);outline-offset:6px;border-radius:8px;background:#fbf1e6}
html.theme-dark .lead-target{background:#2c2118}
.char-count{display:block;text-align:right;font-size:12px;color:var(--muted);margin-top:4px}
/* Présence des clients */
.pres{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap}
.pres::before,.pres-dot{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:#b9ab9c;flex:none}
.pres-dot{width:10px;height:10px}
.pd-online{color:#4f6b25}.pres.pd-online::before,.pres-dot.pd-online{background:#6fae3a;box-shadow:0 0 0 3px #6fae3a33;animation:pulse-badge 2s infinite}
.pd-idle{color:#9b693f}.pres.pd-idle::before,.pres-dot.pd-idle{background:#e3a872}
.pres.pd-invited::before,.pres-dot.pd-invited{background:transparent;border:2px solid #e3a872;width:7px;height:7px}
.pres.pd-never::before,.pres-dot.pd-never{background:transparent;border:2px solid #b9ab9c;width:7px;height:7px}
html.theme-dark .pd-online{color:#a9cf7d}
/* Messages dans les cartes (connexion, panneaux) : pleine largeur */
.auth-card .notice,.panel .notice{margin:0 0 20px}
.secure-note{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.mini-toggle{width:32px;height:32px;font-size:15px}
/* Mode sombre : pages de connexion et espace client */
html.theme-dark .auth-wrap{background:radial-gradient(circle at 20% 10%,#2a1f18 0,transparent 45%),radial-gradient(circle at 90% 90%,#221a15 0,transparent 40%)}
html.theme-dark .auth-card{box-shadow:0 30px 80px #0008}
html.theme-dark .review-banner{background:linear-gradient(120deg,#0f0b09,#2c2018)}
html.theme-dark .accept{background:var(--surface2);border-color:#8a5d38}
html.theme-dark .accept summary{color:var(--accent)}
html.theme-dark .check{color:var(--ink)}
html.theme-dark .secret{background:var(--surface2)}
html.theme-dark .thumb figcaption{color:var(--ink)}
html.theme-dark input:-webkit-autofill{-webkit-box-shadow:0 0 0 40px #120e0c inset;-webkit-text-fill-color:var(--ink)}
.doc>p.small{grid-column:1/-1;margin:0}
/* Seuils TVA & déclarations */
.franchise-status{display:flex;gap:16px;align-items:flex-start;border-radius:12px;padding:18px 22px;margin:0 0 22px;border:1px solid;text-decoration:none;color:var(--ink)}
.franchise-status>span{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff}
.franchise-status p{margin:4px 0 0;font-size:15px}
.fs-ok{background:#f2f7ea;border-color:#c4d6a6}.fs-ok>span{background:#6f8a3c}
.fs-warn{background:#fdf4e7;border-color:#e3c08e}.fs-warn>span{background:#d08b3a}
.fs-danger{background:#fbebe7;border-color:#e2a594}.fs-danger>span{background:#b5482c}
.fs-link:hover{box-shadow:0 10px 30px #30231c14}
.gauges{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:22px}
.gauge{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 22px}
.gauge-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}
.gauge-head span{font-family:Georgia,serif;font-size:26px}.gauge-head small{font-size:14px;color:var(--muted);font-family:inherit}
.gbar{position:relative;height:14px;border-radius:10px;background:#efe6da;margin:14px 0 6px;overflow:visible}
.gfill{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,#8fae5b,#6f8a3c)}
.g-warn .gfill{background:linear-gradient(90deg,#e3a872,#d08b3a)}.g-danger .gfill{background:linear-gradient(90deg,#d97a5c,#b5482c)}
.gmark{position:absolute;top:-5px;bottom:-5px;left:90.9%;width:3px;border-radius:2px;background:var(--ink)}
.gauge-legend{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;position:relative}
.gauge-legend .gl-base{position:absolute;left:90.9%;transform:translateX(-100%);padding-right:6px}
.gauge-legend small:last-child{margin-left:auto}
.row-next td{background:#fbf1e6;font-weight:600}.row-past td{color:var(--muted)}
.nature-sel{margin-top:6px!important;width:auto!important;font-size:12px!important;padding:4px 8px!important;color:var(--muted)!important}
@media(max-width:800px){.gauges{grid-template-columns:1fr}}
html.theme-dark .gauge{background:var(--surface);border-color:var(--line)}
html.theme-dark .gbar{background:#2e2620}html.theme-dark .gmark{background:var(--ink)}
html.theme-dark .fs-ok{background:#1b2216;border-color:#3b4d2c}html.theme-dark .fs-warn{background:#2c2118;border-color:#6b4a26}html.theme-dark .fs-danger{background:#2e1a15;border-color:#6b3326}
html.theme-dark .row-next td{background:#2c2118}
.gauge-legend{display:flex!important;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:4px 0 0;font-size:12px;color:var(--muted)}
.gauge-legend .lg-mark{display:inline-block;width:3px;height:11px;background:var(--ink);border-radius:2px;margin-right:6px;vertical-align:-1px}
/* Rendez-vous proposés */
.rdv-list{display:grid;gap:10px}
.rdv{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--paper)}
.rdv.past{opacity:.6}
.rdv-propose,.rdv-contre{border-color:#e3c08e;background:#fdf6ec;box-shadow:inset 3px 0 0 var(--wood)}
.rdv-confirme{border-color:#c4d6a6}
.rdv-annule{opacity:.6}
.rdv-main strong{margin-right:6px}
.rdv-note{display:block;margin-top:4px;color:var(--muted)}
.rdv-counter{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.rdv-actions{margin-top:10px}
.rdv-tool{margin:10px 0 0;border:0;padding:0}
.rdv-tool>summary{padding:6px 0;font-size:14px}
.rdv-del{justify-self:end;margin-top:-4px}
.rdv-card .rdv{margin:10px 0 16px}
html.theme-dark .rdv{background:var(--surface2);border-color:var(--line)}
html.theme-dark .rdv-propose,html.theme-dark .rdv-contre{background:#2c2118;border-color:#6b4a26}
html.theme-dark .rdv-confirme{border-color:#3b4d2c}
/* Suggestions de communes */
.has-suggest{position:relative}
.suggest{position:absolute;z-index:40;left:0;right:0;top:100%;margin:4px 0 0;padding:6px;list-style:none;background:#fffdf9;border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 40px #30231c26;max-height:min(320px,50vh);overflow:auto;color:var(--ink);text-align:left}
.suggest li{padding:11px 12px;border-radius:7px;cursor:pointer;font-size:16px;line-height:1.3}
.suggest li:hover,.suggest li.on{background:var(--cream)}
.zone-input.has-suggest .suggest{top:calc(100% + 2px)}
/* Mot de passe : voir / masquer */
.pw-wrap{position:relative;display:block}
.pw-wrap input{padding-right:92px!important}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);min-height:0;padding:7px 12px;font-size:13px;font-weight:700;border-radius:6px;background:transparent!important;color:#885c38!important;border:1px solid var(--line)!important;margin:0!important}
.pform .pw-wrap input,.auth-card .pw-wrap input{margin-top:0}
.f>.pw-wrap{margin-top:0}
.pw-hint{display:block;margin-top:6px;font-size:13px;font-weight:600;text-transform:none;letter-spacing:0}
.pw-hint.ok{color:#4f6b25}.pw-hint.ko{color:#a4512c}
html.theme-dark .pw-toggle{color:var(--accent)!important;border-color:#4a3d33!important}
html.theme-dark .pw-hint.ok{color:#a9cf7d}html.theme-dark .pw-hint.ko{color:#e69a85}
.f>span.pw-wrap,.auth-card .f>span.pw-wrap{font-size:inherit;text-transform:none;letter-spacing:normal;color:inherit;font-weight:400;margin:0}
.pw-toggle{z-index:3}
/* Cartes de connexion : jamais plus larges que l'écran (téléphone) */
.auth-wrap{grid-template-columns:minmax(0,1fr);justify-items:center}
.auth-card{min-width:0;max-width:100%;box-sizing:border-box}
.auth-card h1{overflow-wrap:break-word}
.auth-card input{min-width:0;max-width:100%}
@media(max-width:600px){.auth-wrap{padding:28px 14px}.auth-card{padding:22px}}
/* Cases à cocher avec texte et liens : le texte reste un seul paragraphe */
.check{display:block;position:relative;padding-left:32px;line-height:1.55}
.check>input[type=checkbox]{position:absolute;left:0;top:1px;margin:0}

.mail-log{white-space:pre-wrap;word-break:break-word;background:var(--cream);color:var(--ink);padding:10px 12px;border-radius:8px;max-height:340px;overflow:auto;font-size:12px;line-height:1.5}
/* ---------- Pilotage ---------- */
.pilot-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;margin-bottom:20px;align-items:start}.pilot-grid>.panel{margin:0;min-width:0}
@media(max-width:950px){.pilot-grid{grid-template-columns:1fr}}
.kpi-main{border-color:var(--wood);background:linear-gradient(135deg,var(--surface,#fff),#f7ead8)}html.theme-dark .kpi-main{background:linear-gradient(135deg,var(--surface),#3a2a1d)}
.kpi small b{font-weight:700}.up{color:#3f7a3a}.down{color:#b4492f}html.theme-dark .up{color:#8fcf86}html.theme-dark .down{color:#ef8f74}
.notice.warn{border-left-color:#c0803c}
.chart{width:100%;height:auto;display:block;color:var(--muted)}.ch-a{fill:var(--wood)}.ch-b{fill:var(--ink);opacity:.55}.ch-track{fill:var(--line)}.ch-grid{stroke:var(--line);stroke-width:1}.ch-lab{fill:currentColor;font-size:12px;font-family:system-ui,sans-serif}
.result-table td{padding:7px 4px}.result-table tr.total td{border-top:2px solid var(--ink);font-weight:700;font-size:18px;padding-top:12px}
.mini-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:4px 0 16px}.mini-kpis div{background:var(--cream);border-radius:10px;padding:12px}.mini-kpis strong{display:block;font-family:Georgia,serif;font-size:22px}.mini-kpis small{color:var(--muted);font-size:12px;line-height:1.35;display:block}
@media(max-width:600px){.mini-kpis{grid-template-columns:1fr}}
.dues{list-style:none;margin:0;padding:0}.dues li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.dues li>span{flex:1;min-width:0}.dues li small{display:block;color:var(--muted);font-size:12px}.dues li b{white-space:nowrap}.dues li.late strong,.dues li.late small{color:#b4492f}html.theme-dark .dues li.late strong,html.theme-dark .dues li.late small{color:#ef8f74}
.cat-bars{list-style:none;margin:0;padding:0}.cat-bars li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(60px,1fr) auto;gap:10px;align-items:center;padding:6px 0;font-size:14px}.cat-bars b{white-space:nowrap}.hbar{width:100%;height:10px;display:block}
.contract.off{opacity:.6}.contract .panel-head{align-items:flex-start}.contract h2{margin:0}.contract-amt{text-align:right}.contract-amt strong{display:block;font-family:Georgia,serif;font-size:24px}.contract-amt small{color:var(--muted)}
.inline-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:14px}.inline-row .f{flex:1;min-width:200px;margin:0}
.panel.narrow{max-width:760px}
.time-form .f-row{grid-template-columns:repeat(3,minmax(0,1fr))}
/* Devis : prix d'achat, marge, temps (interne) */
.bl-cost{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px;padding:6px 8px;border-radius:6px;background:var(--cream);font-size:12px;color:var(--muted)}.bl-cost label{display:flex;align-items:center;gap:5px;white-space:nowrap}.bl-cost input{width:76px;padding:4px 6px;font-size:13px;min-height:0}
.bill-margin{text-align:right;font-size:13px;color:var(--muted);margin:8px 8px 0}
.cost-box{border:1px dashed var(--line);border-radius:8px;padding:10px 12px;margin:0 0 14px}.cost-box legend{font-size:12px;color:var(--muted);padding:0 6px}
@media(max-width:600px){.kpi span{font-size:24px}.kpi{padding:14px 16px}}
.bl-margin{display:flex;align-items:center;font-weight:600;color:var(--wood)}
.bl-section .sect-cost{margin-top:8px;background:transparent;border:1px dashed var(--line)}
.travel-box{margin:16px 8px 0;border:1px dashed var(--wood);border-radius:10px;padding:10px 14px;background:var(--cream)}.travel-box summary{cursor:pointer;font-weight:700}.travel-box summary small{font-weight:400}
.travel-box .f-row{margin-top:10px}.travel-calc{font-size:14px;line-height:1.6;margin:4px 0 10px}.travel-actions{display:flex;flex-wrap:wrap;gap:8px}
/* Récap interne + carte déplacement + photos de lignes */
.bill-margin{margin:14px 8px 0;text-align:left;border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:var(--surface,#fff)}.recap-head{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:6px}
.recap{width:100%;border-collapse:collapse;font-size:14px}.recap td{padding:5px 4px;border-bottom:1px solid var(--line)}.recap td:first-child{font-weight:600}.recap td:nth-child(2){color:var(--muted)}.recap .num{text-align:right;font-weight:700;color:var(--wood)}.recap tr.tot td{border-bottom:0;border-top:2px solid var(--ink);font-size:15px}
.travel-card{margin:14px 8px 0;border:1px solid var(--wood);border-radius:12px;padding:14px 16px;background:var(--cream)}
.tc-head{display:flex;align-items:center;gap:12px}.tc-ico{font-size:26px}.tc-what{flex:1;min-width:0}.tc-what strong{display:block}.tc-what small{color:var(--muted)}.tc-total{text-align:right}.tc-total b{display:block;font-family:Georgia,serif;font-size:26px;line-height:1.1;color:var(--wood)}.tc-total small{color:var(--muted);font-size:11px}
.tc-steps{margin:10px 0 12px;padding-left:20px;font-size:14px;line-height:1.7;color:var(--ink)}
.tc-mode{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tc-mode label{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);background:var(--surface,#fff);border-radius:10px;padding:9px 10px;cursor:pointer;font-size:14px}.tc-mode label:has(input:checked){border-color:var(--wood);box-shadow:0 0 0 2px #c88c5533}.tc-mode b{display:block;font-size:13.5px}.tc-mode small{color:var(--muted);font-size:12px}.tc-mode input{margin-top:3px;accent-color:var(--wood)}
@media(max-width:700px){.tc-mode{grid-template-columns:1fr}}
.tc-note{font-size:13px;margin:10px 0 0;color:#9b693f}.tc-edit{margin-top:10px;font-size:14px}.tc-edit summary{cursor:pointer;color:var(--muted)}
.bl-img{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.bl-thumb{width:64px;height:64px;object-fit:cover;border-radius:6px;border:1px solid var(--line);display:block}.img-pick{cursor:pointer}
.tc-mode input[type=radio]{width:16px!important;height:16px;min-height:0;flex:0 0 16px;padding:0;margin:3px 0 0;box-shadow:none}.tc-mode label>span{flex:1;min-width:0}
.bl-section .bl-main{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.bl-section .bl-main>input[data-n=label]{flex:1 1 220px;font-weight:700}
.bl-section .sect-cost{margin:0;border:0;padding:0;background:transparent;font-size:13px}
.bl-cost{padding:5px 8px;gap:4px 14px}.bl-cost input,.bl-cost select{height:30px;min-height:0;padding:3px 8px;font-size:13px}.bl-cost input{width:78px}
.bl-img .mini{padding:4px 10px}
.bl-cost select{height:32px;line-height:1.2;padding:2px 28px 2px 8px;font-size:13px}.bl-cost label{gap:6px}
.pay-inline{display:inline-flex;gap:6px;align-items:center}.pay-inline select{height:32px;min-height:0;padding:2px 26px 2px 8px;font-size:13px;width:auto}
/* ---------- Commercial ---------- */
.fam-seg{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:24px}
.prod-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface,#fff);text-decoration:none;transition:transform .2s,box-shadow .2s}.prod-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #30231c14}.prod-card.off{opacity:.55}
.prod-img{aspect-ratio:4/3;background:var(--cream);display:grid;place-items:center;font-size:42px}.prod-img img{width:100%;height:100%;object-fit:cover;display:block}
.prod-body{padding:12px 14px;display:flex;flex-direction:column;gap:2px}.prod-body small{color:var(--wood);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.prod-body strong{font-size:17px}.prod-foot{font-size:13px;color:var(--muted);margin-top:4px}
.prod-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:22px;align-items:start}.prod-hero h1{margin:4px 0}.prod-hero-img{border-radius:10px;overflow:hidden;background:var(--cream);aspect-ratio:3/4;display:grid;place-items:center;font-size:60px}.prod-hero-img img{width:100%;height:100%;object-fit:cover}
@media(max-width:700px){.prod-hero{grid-template-columns:1fr}}
.fin-title{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--wood);margin:18px 0 8px}
.fin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.fin{position:relative;margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface,#fff)}.fin img,.fin-ph{width:100%;aspect-ratio:1;object-fit:cover;display:grid;place-items:center;background:var(--cream);color:var(--line);font-size:40px}.fin figcaption{position:static;background:none;color:var(--ink);padding:7px 9px;font-size:13px;font-weight:600}.fin figcaption small{display:block;color:var(--muted);font-weight:400}.fin-del{position:absolute;top:4px;right:4px}.fin-del .mini{background:var(--surface,#fff)}
.sup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.sup-grid .panel{margin:0}.sup h2{margin:0}.sup-info{list-style:none;padding:0;margin:8px 0;font-size:14px;line-height:1.8}
.chk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 12px;margin-bottom:8px}
.camp-preview{background:var(--cream);border-radius:10px;padding:16px 18px;font-size:15px;line-height:1.6}
.progress{margin:0 0 18px}.hbar.prog{height:12px}
/* ---------- Catalogue en portfolio ---------- */
.pf-head{padding:10px 0 26px}.pf-head h1{font-size:clamp(34px,5vw,58px);line-height:1.05;margin:6px 0 10px}.pf-head h1 em{color:var(--wood);font-style:italic}
.pf-rubs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:240px;gap:14px;margin-bottom:30px}
.pf-rub{position:relative;overflow:hidden;border-radius:16px;background:var(--dark,#30231c);color:#fff;text-decoration:none;isolation:isolate}
.pf-rub.wide{grid-column:span 2;grid-row:span 2}
.pf-rub img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1);z-index:-2}
.pf-rub::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#1e140e10 20%,#1e140ee0 100%);z-index:-1;transition:background .4s}
.pf-rub:hover img{transform:scale(1.06)}.pf-rub:hover::after{background:linear-gradient(180deg,#1e140e30 0%,#1e140ef2 100%)}
.pf-rub-txt{position:absolute;left:20px;right:20px;bottom:18px;display:flex;flex-direction:column;gap:3px}
.pf-rub-txt small{font-size:11px;letter-spacing:.2em;color:#e3a872;font-weight:700}.pf-rub-txt strong{font-family:Georgia,serif;font-weight:normal;font-size:24px;line-height:1.15}.pf-rub.wide .pf-rub-txt strong{font-size:38px}
.pf-rub-txt em{font-style:normal;font-size:13px;opacity:.82}.pf-rub-txt b{font-size:13px;margin-top:6px;color:#e3a872;opacity:0;transform:translateY(6px);transition:.35s}.pf-rub:hover .pf-rub-txt b,.pf-rub.wide .pf-rub-txt b{opacity:1;transform:none}
@media(max-width:1000px){.pf-rubs{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:200px}}
@media(max-width:560px){.pf-rubs{grid-template-columns:1fr}.pf-rub.wide{grid-column:auto;grid-row:span 1}.pf-rub.wide .pf-rub-txt strong{font-size:26px}.pf-rub-txt b{opacity:1;transform:none}}
.pf-banner{position:relative;overflow:hidden;border-radius:18px;min-height:230px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:28px 30px;margin:10px 0 18px;background:var(--dark,#30231c);color:#fff;isolation:isolate;flex-wrap:wrap}
.pf-banner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.pf-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#1e140ef0 0%,#1e140eb0 45%,#1e140e40 100%);z-index:-1}
.pf-banner h1{color:#fff;font-size:clamp(32px,4.5vw,50px);margin:4px 0}.pf-banner p{margin:0;opacity:.85}.pf-banner .eyebrow{color:#e3a872}
.pf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px;margin:8px 0 26px}
.pf-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;border-radius:14px;overflow:hidden;background:var(--surface,#fff);border:1px solid var(--line);transition:transform .3s,box-shadow .3s}.pf-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px #30231c1f}.pf-card.off{opacity:.55}
.pf-img{position:relative;aspect-ratio:4/5;background:var(--cream);display:grid;place-items:center;font-size:54px;color:var(--line);overflow:hidden}.pf-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.pf-card:hover .pf-img img{transform:scale(1.05)}
.pf-flag{position:absolute;top:10px;left:10px;background:#30231ccc;color:#fff;font-style:normal;font-size:12px;padding:3px 9px;border-radius:20px}
.pf-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:3px}.pf-body small{color:var(--wood);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;min-height:14px}.pf-body strong{font-family:Georgia,serif;font-weight:normal;font-size:22px;line-height:1.2}
.pf-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px}.pf-foot b{font-size:14px;white-space:nowrap}
.pf-sw{display:flex;align-items:center}.pf-sw img,.pf-sw i{width:26px;height:26px;border-radius:50%;object-fit:cover;border:2px solid var(--surface,#fff);margin-left:-6px;box-shadow:0 0 0 1px var(--line);background:var(--cream);display:block}.pf-sw img:first-child,.pf-sw i:first-child{margin-left:0}.pf-sw em{font-style:normal;font-size:12px;color:var(--muted);margin-left:6px}
.pf-empty{text-align:center;padding:40px 20px}
.pf-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;align-items:start;margin:10px 0 26px}
.pf-hero-img{border-radius:18px;overflow:hidden;background:var(--cream);aspect-ratio:4/5;display:grid;place-items:center;font-size:80px;color:var(--line);position:sticky;top:20px}.pf-hero-img img{width:100%;height:100%;object-fit:cover}
.pf-hero-txt h1{font-size:clamp(34px,4.5vw,54px);line-height:1.05;margin:6px 0 8px}.pf-meta{color:var(--muted);margin:0 0 16px}
.pf-price{font-size:18px;margin:16px 0}.pf-price strong{font-family:Georgia,serif;font-size:30px;color:var(--wood);font-weight:normal}.pf-price small{display:block;color:var(--muted);font-size:12px}
.pf-fin{margin-top:22px}.pf-fin h3{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--wood);margin:0 0 10px}
.pf-fin-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:12px}
.pf-swatch{position:relative;margin:0}.pf-swatch img,.pf-swatch>span{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;display:block;background:var(--cream);border:1px solid var(--line)}.pf-swatch figcaption{position:static;background:none;color:var(--ink);padding:6px 2px 0;font-size:13px;font-weight:600;line-height:1.3}.pf-swatch figcaption small{display:block;color:var(--muted);font-weight:400}
.pf-swatch .fin-del{position:absolute;top:4px;right:4px;opacity:0;transition:opacity .2s}.pf-swatch:hover .fin-del{opacity:1}
@media(max-width:800px){.pf-hero{grid-template-columns:1fr}.pf-hero-img{position:static}}
.pf-rub.long{grid-column:span 2}@media(max-width:1000px){.pf-rub.long{grid-column:span 2}}@media(max-width:560px){.pf-rub.long{grid-column:auto}}
.pf-chips{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:8px}.pf-chips li{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface,#fff);border-radius:20px;padding:6px 6px 6px 14px;font-size:13.5px;line-height:1.3}.pf-chips small{color:var(--muted)}
.chip-x{border:0;background:transparent;color:var(--muted);font-size:16px;line-height:1;padding:2px 6px;cursor:pointer;min-height:0;width:auto;box-shadow:none}.chip-x:hover{color:#b4492f}
/* ---- Catalogue « présentation client » (mode masqué) ---- */
body:has(.portal.showroom) .topline,body:has(.portal.showroom)>header{display:none}
.show-bar{z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:12px 18px;background:var(--dark);color:#f4e7d9;border-radius:14px;margin-bottom:22px;position:relative}
.show-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.show-brand img{filter:brightness(0) invert(1) sepia(.3);opacity:.92;object-fit:contain}.show-brand span{display:flex;flex-direction:column;line-height:1.15}.show-brand strong{letter-spacing:.2em;font-size:19px}.show-brand small{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#e3a872}
.show-nav{display:flex;gap:6px}.show-nav a{color:#f4e7d9;padding:8px 14px;border-radius:30px;font-size:15px;display:inline-flex;align-items:center;gap:8px}.show-nav a.on{background:#ffffff1c}.show-nav b{background:var(--wood);color:#fff;border-radius:20px;font-size:12px;padding:1px 8px}
.show-bar details.unlock{position:relative;border:0;padding:0;margin:0;background:none}.unlock>summary{list-style:none;cursor:pointer;border:1px solid #ffffff40;border-radius:30px;padding:7px 16px;font-size:14px;color:#f4e7d9;display:inline-flex;align-items:center;gap:6px}.unlock>summary::-webkit-details-marker{display:none}.unlock>summary::before{content:"🔒"}.unlock[open]>summary{background:#ffffff1c}
.unlock-form{position:absolute;right:0;top:calc(100% + 10px);z-index:20;width:min(300px,86vw);background:var(--surface,#fff);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:0 18px 40px #0003;display:grid;gap:10px}.unlock-form .otp{font-size:24px;letter-spacing:.3em;text-align:center}
.unlock-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:#fbeedd;border:1px solid #ecc99f;color:#6b4320;border-radius:10px;padding:8px 14px;margin:-12px 0 20px;font-size:14px}
html.theme-dark .unlock-bar{background:#3a2a1c;border-color:#6b4a2c;color:#f0d2ad}
.visit-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:9px 14px;margin:-6px 0 18px;font-size:15px}
.locked-panel{margin:40px auto;text-align:center}
.internal-note{border:1px dashed #d9a066;background:#fdf6ec;border-radius:10px;padding:10px 14px;margin:12px 0}.internal-note p{margin:4px 0 0}html.theme-dark .internal-note{background:#2c2219}
/* Configurateur : finitions cliquables */
.cfg{margin-top:8px}.cfg fieldset{border:0;padding:0;margin:22px 0 0;min-width:0}.cfg legend{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--wood);font-weight:700;margin:0 0 10px;padding:0}.cfg legend small{letter-spacing:0;text-transform:none;color:var(--muted);font-weight:400;font-size:12px}
.pick-wrap{position:relative}.pick{display:block;cursor:pointer;position:relative}.pick input,.chip-pick input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.pick img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;display:block;border:1px solid var(--line);transition:box-shadow .2s,transform .2s}
.pick span{display:block;font-size:13px;line-height:1.3;margin-top:6px}.pick span small{display:block;color:var(--muted)}
.pick:hover img{transform:translateY(-2px)}.pick input:checked+img{box-shadow:0 0 0 3px var(--paper),0 0 0 5px var(--wood)}.pick input:checked~span{font-weight:700}
.pick input:checked+img+span::before{content:"✓ ";color:var(--wood)}.pick input:focus-visible+img{outline:3px solid #926027;outline-offset:3px}
.pick-wrap .fin-del{position:absolute;top:4px;right:4px;opacity:0;transition:opacity .2s}.pick-wrap:hover .fin-del{opacity:1}
.chip-wrap{display:inline-flex;align-items:center}.chip-pick{display:inline-flex;cursor:pointer}.chip-pick span{border:1px solid var(--line);background:var(--surface,#fff);border-radius:20px;padding:7px 14px;font-size:14px;transition:.2s}.chip-pick span small{color:var(--muted)}
.chip-pick input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--paper)}.chip-pick input:checked+span small{color:inherit}.chip-pick input:focus-visible+span{outline:3px solid #926027;outline-offset:2px}
.cfg-box{background:var(--cream);border-radius:14px;padding:16px 18px!important;margin-top:26px!important}.cfg-box .f-row{margin-top:4px}
.cfg-go{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:10px}.cfg-total{margin:0;font-size:15px}.cfg-total output{font-family:Georgia,serif;font-size:24px;color:var(--wood);margin-left:6px}
/* Sélection du client */
.sel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin:6px 0 22px}
.sel-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface,#fff);display:flex;flex-direction:column}
.sel-img{position:relative;aspect-ratio:4/3;background:var(--cream);display:grid;place-items:center;font-size:48px;color:var(--line)}.sel-img img{width:100%;height:100%;object-fit:cover}
.sel-tag{position:absolute;left:10px;bottom:10px;background:#30231ccc;color:#fff;font-style:normal;font-size:11px;padding:3px 9px;border-radius:20px}
.sel-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}.sel-body h3{margin:0;font-family:Georgia,serif;font-weight:normal;font-size:19px;line-height:1.25}.sel-body h3 b{color:var(--wood);font-family:system-ui,sans-serif;font-size:15px}
.sel-det{list-style:none;margin:0;padding:0;font-size:13px;display:grid;gap:2px}.sel-det span{color:var(--muted);margin-right:6px}.sel-det span::after{content:" :"}
.sel-body .row-actions,.sel-next .row-actions{display:flex;gap:6px;white-space:normal;align-items:center;flex-wrap:wrap}.sel-body .row-actions{margin-top:auto;padding-top:6px}.row-actions .inline-form{margin:0}
.sel-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.sel-next .row-actions{flex-wrap:wrap;align-items:center}
.img-pick.busy{opacity:.6;pointer-events:none}
@media(max-width:640px){.show-nav a{padding:6px 10px;font-size:14px}.unlock-form{right:-8px}}
.cfg-h{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--wood);font-weight:700;margin:0 0 8px}.cfg-box .f-row .f input{width:100%}
.cfg-box .f-row{grid-template-columns:1fr 1fr 100px}@media(max-width:600px){.cfg-box .f-row{grid-template-columns:1fr 1fr 80px;gap:10px}}
/* Saisie d'adresse avec propositions */
.addr-wrap{position:relative}
.addr-list{position:absolute;left:0;right:0;z-index:60;list-style:none;margin:4px 0 0;padding:4px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 30px #0002;max-height:300px;overflow:auto}
.addr-list li{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:7px;cursor:pointer;font-size:15px;line-height:1.3;text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink)}
.addr-list li strong{font-weight:600}.addr-list li span{font-size:13px;color:var(--muted)}
.addr-list li:hover,.addr-list li.on{background:var(--cream)}
.addr-hint{display:block;min-height:0;margin-top:4px;font-size:13px;text-transform:none;letter-spacing:0;font-weight:400;color:var(--muted)}.addr-hint:empty{display:none}
.addr-hint.ok{color:#3d7a3a}.addr-hint.bad{color:#b4492f}html.theme-dark .addr-hint.ok{color:#8fcf86}html.theme-dark .addr-hint.bad{color:#f0957d}
/* ---- Emailing ---- */
.st-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:baseline;flex:none;box-shadow:0 0 0 1px #0002}
.st-a_contacter{--st:#8a94a6}.st-contacte{--st:#e6b422}.st-pas_repondu{--st:#9b7cc4}.st-pris_contact{--st:#3aa6a0}.st-interesse{--st:#8fcf6f}.st-devis{--st:#4f86c6}.st-client{--st:#2e8b3e}.st-refus{--st:#c8463c}
.st-dot{background:var(--st,#999)}
.st-kpis .kpi small{display:flex;align-items:center}.st-kpis .kpi.on{border-color:var(--wood);box-shadow:0 0 0 2px var(--wood) inset}
.em-filters select,.em-filters input[type=search]{max-width:200px}
.tag{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;margin-top:4px;letter-spacing:.02em}
.tag-pro{background:#e7eef8;color:#2f5687}.tag-part{background:#f6ecdf;color:#8a5a2f}.tag-client{background:#e3f1e3;color:#2e6b34}
html.theme-dark .tag-pro{background:#22324a;color:#a9c4ea}html.theme-dark .tag-part{background:#3a2c1f;color:#e7c39b}html.theme-dark .tag-client{background:#1f3a24;color:#9fd8a5}
.st-form{display:inline-flex;align-items:center}.st-form select{padding:6px 8px;font-size:13px;min-height:0}
.who-seg{display:flex;width:100%;margin-bottom:14px}.who-seg label{flex:1;position:relative;cursor:pointer}.who-seg input{position:absolute;opacity:0}
.who-seg span{display:block;text-align:center;padding:9px 10px;border-radius:8px;font-weight:600;font-size:14px}.who-seg input:checked+span{background:var(--ink);color:var(--paper)}.who-seg input:focus-visible+span{outline:3px solid #926027}
.em-form .consent{background:#fbeedd;border-radius:8px;padding:8px 10px}html.theme-dark .em-form .consent{background:#3a2a1c}
/* Carte */
.pm-wrap{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start;margin-bottom:24px}
.pm-legend{display:flex;flex-direction:column;gap:8px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:12px;padding:14px;position:sticky;top:16px}
.pm-leg{display:flex;align-items:center;gap:4px;font-size:14px;cursor:pointer}.pm-leg small{color:var(--muted)}
.pm-map{position:relative;margin:0}.pm-map .zm-zone-line{transform:none}.pm-map .zm-city{opacity:1}.pm-map .zm-zone{fill-opacity:.14}
.pm-pt{fill:var(--st,#999);stroke:#fffdf9;stroke-width:2.5;cursor:pointer;transition:r .15s}.pm-pt:hover,.pm-pt:focus{outline:none;stroke:#402b20}svg:not(.pm-zoomed) .pm-pt:hover,svg:not(.pm-zoomed) .pm-pt:focus{r:10}.pm-pt.pm-off{display:none}
.pm-tip{position:absolute;z-index:30;width:270px;background:var(--surface,#fff);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px #0003;padding:12px 14px;font-size:13px;line-height:1.45;pointer-events:auto}
.pm-tip strong{display:block;font-family:Georgia,serif;font-weight:normal;font-size:17px}.pm-tip>small{display:block;color:var(--muted)}
.pm-tip .pm-st{display:inline-block;font-style:normal;font-weight:700;font-size:12px;margin:6px 0 4px;padding:2px 9px;border-radius:20px;background:var(--st);color:#fff}
.pm-tip .pm-st.st-contacte,.pm-tip .pm-st.st-interesse{color:#2b2b2b}
.pm-tip p{margin:3px 0}.pm-tip p span{color:var(--muted);margin-right:6px}.pm-tip .pm-hint{display:block;margin-top:6px;color:var(--wood);font-size:11px}
@media(max-width:860px){.pm-wrap{grid-template-columns:1fr}.pm-legend{position:static;flex-direction:row;flex-wrap:wrap}}
/* Conception des emails */
.hero-pick,.svc-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.hero-pick .pick img,.svc-pick .pick img{aspect-ratio:4/3}.hero-none{display:grid!important;place-items:center;aspect-ratio:4/3;border:1px dashed var(--line);border-radius:12px;color:var(--muted);margin:0!important}
.svc-pick .pick span small{display:block;font-weight:400;color:var(--muted);font-size:11px}
.em-designer fieldset.f{border:0;padding:0;margin:0 0 14px}.em-designer fieldset.f legend{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#885c38;margin-bottom:8px}
.em-designer fieldset.f legend .link-btn{text-transform:none;letter-spacing:0;font-weight:400;margin-left:8px}
.em-actions{display:flex;gap:8px;flex-wrap:wrap;white-space:normal}
/* Notifications */
.notif{position:relative;border:0;padding:0;margin:0;background:none}
.notif>summary{list-style:none;cursor:pointer;position:relative;font-size:19px;line-height:1;padding:6px 8px;border-radius:8px}.notif>summary::-webkit-details-marker{display:none}
.notif>summary b{position:absolute;top:-2px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#c8463c;color:#fff;font-size:11px;line-height:18px;text-align:center;font-family:system-ui,sans-serif}
.notif[open]>summary{background:var(--cream)}
.notif-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:50;width:min(360px,90vw);max-height:70vh;overflow:auto;background:var(--surface,#fff);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px #0003;padding:12px}
.notif-h{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--wood)}
.notif-pop ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.notif-pop a{display:flex;gap:10px;align-items:flex-start;padding:8px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:14px;line-height:1.35}.notif-pop a:hover{background:var(--cream)}
.notif-pop a strong{display:block;font-weight:600}.notif-pop a small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.notif-i{font-size:17px;line-height:1.2}
.rgpd-old{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
/* Emailing : liste classée par statut, transformation en fiche client */
.em-table tr.st-group th{background:var(--cream);text-align:left;font-size:.85rem;letter-spacing:.02em;padding:8px 10px;border-top:2px solid var(--st,#999)}
.em-table .row-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center;white-space:normal}
.em-table .row-actions .inline-form{margin:0}
.to-client{display:flex;flex-direction:column;gap:6px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line,#ddd)}
.to-client button{align-self:flex-start}
.pm-zoom{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.pm-zoom button{margin:0}.pm-zoomed .pm-pt{stroke-width:var(--pm-sw,1)}.pm-zoomed path,.pm-zoomed line,.pm-zoomed circle:not(.pm-pt),.pm-zoomed rect{vector-effect:non-scaling-stroke}.pm-zoomed text,.pm-zoomed g:has(>text) rect,.pm-zoomed circle:not(.pm-pt){display:none}
.dev-banner{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;margin:0 0 22px;padding:14px 18px;border:1px dashed #b07a2a;border-left:5px solid #e6b422;background:#fdf6e3;border-radius:8px;font-size:14px;color:#5b4320}.dev-banner code{background:#fff3cc;padding:1px 5px;border-radius:4px}
.dev-lock button[disabled]{opacity:.65;cursor:not-allowed;margin:0}.dev-lock p{margin:8px 0 0}
.presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:0 0 16px}.presets>span{grid-column:1/-1}
.preset{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;text-decoration:none;background:var(--paper)}.preset small{color:var(--muted);font-size:12.5px;line-height:1.4}.preset:hover{border-color:var(--ink)}.preset.on{border-color:var(--wood);box-shadow:inset 0 0 0 1px var(--wood);background:var(--cream)}
.var-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 6px;position:sticky;top:0;z-index:2;background:var(--paper);padding:6px 0}.chip{min-height:0;padding:4px 10px;font-size:13px;font-family:ui-monospace,Menlo,monospace;background:var(--cream);color:var(--ink);border:1px solid var(--line);border-radius:20px;font-weight:600;margin:0}.chip:hover{background:#ead5be}
.dues li .mini.outline{margin-left:auto;margin-right:8px}
.theme-dark .dev-banner{background:#3a301c;color:#f3e2b8;border-color:#b07a2a}.theme-dark .dev-banner code{background:#4a3c20}
.em-designer textarea.code-area,.pform textarea.code-area{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.5;tab-size:2;white-space:pre;overflow:auto;background:#1f1813;color:#f3e6d6;border-color:#402b20}
.code-help{background:var(--cream);border-radius:8px;padding:10px 14px;margin:0 0 12px}.code-help p{margin:6px 0}
.preset>a:first-child{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:inherit}.preset-code{align-self:flex-start;margin-top:8px;font-size:12px;font-family:ui-monospace,Menlo,monospace;padding:3px 9px;border:1px solid var(--line);border-radius:20px;text-decoration:none;background:var(--cream)}.preset-code:hover,.preset-code.on{border-color:var(--ink)}
.unsub-card{width:min(560px,100%)}.unsub-card h1{margin-bottom:14px}.unsub-ok{width:54px;height:54px;border-radius:50%;background:#2e8b3e;color:#fff;display:grid;place-items:center;font-size:28px;margin:0 0 14px}
.unsub-form{margin:18px 0 6px}.unsub-form button{margin-top:6px}.unsub-why{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:0 0 6px}.unsub-why legend{padding:0 6px;color:var(--muted)}.unsub-why .check{display:block;margin:6px 0;font-weight:500}
.unsub-contact{margin:24px 0 8px;padding:20px;border-radius:12px;background:var(--cream)}.unsub-contact .eyebrow{margin:0 0 8px}.unsub-contact p{margin:0 0 12px}.unsub-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.unsub-actions .button{min-height:42px;padding:9px 16px;font-size:15px}.link-more{font-weight:650;font-size:15px}
.unsub-demo{margin:0 0 18px!important;font-size:14px}.unsub-legal{margin-top:16px}
.theme-dark .unsub-contact{background:#2b221c}
.unsub-why .check{display:flex;align-items:center;gap:10px}.unsub-why input[type=radio]{display:inline-block;width:18px;height:18px;margin:0;flex:none;accent-color:#402b20}
.presets-wrap{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:0 0 14px}.presets-wrap>summary{font-weight:650;cursor:pointer}.presets-wrap[open]>summary{margin-bottom:10px}
.presets{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.preset small{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pm-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:10px;background:var(--wood);color:#fff;vertical-align:middle}
.model-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:18px 0 6px;padding:12px 14px;border:1px dashed var(--line);border-radius:10px}.model-bar button{margin:0}.model-bar>small{flex-basis:100%}
.model-new{border:0;padding:0;margin:0}.model-new>summary{display:inline-block;padding:6px 10px;border:1px solid var(--line);border-radius:6px;font-weight:600}.model-new[open]{flex-basis:100%}.model-new[open]>summary{margin-bottom:8px}
.calls-import input[type=file]{padding:9px;background:var(--paper)}
/* Démarchage : case « appelé » et suivi des contacts */
.call-cell{white-space:nowrap}.call-cell small,.call-cell .note-link{display:block;margin-top:4px}
.call-btn{min-height:0;margin:0;padding:6px 10px;font-size:13px;border-radius:6px;background:var(--paper);color:var(--ink);border:1px solid var(--line);font-weight:600}.call-btn:hover{background:var(--cream)}.call-btn.on{background:#e6f3e0;border-color:#8fcf6f;color:#24602e}
.note-link{text-decoration:none;color:var(--wood);font-weight:600}
.suivi .panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.suivi .panel-head .button{margin:0}
.suivi-form .f-row{align-items:flex-end}.suivi-form .check{margin:0 0 14px}
.timeline-notes{list-style:none;margin:14px 0 0;padding:0;border-left:2px solid var(--line)}
.timeline-notes li{position:relative;margin:0 0 12px;padding:0 0 0 16px}.timeline-notes li::before{content:"";position:absolute;left:-6px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--wood)}
.timeline-notes li.tn-call::before{background:#2e8b3e}.tn-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tn-head .tn-del{margin-left:auto}.timeline-notes .text{margin:4px 0 0;font-size:14px}
/* Cloche : toujours au-dessus du contenu de la page ; notifications lues ; élément ciblé par un lien */
.portal-bar{position:relative;z-index:70}.notif{z-index:80}.notif-pop{z-index:90}
.notif-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 6px}.notif-top .notif-h{margin:0}.notif-top button{margin:0;min-height:0;padding:2px 4px;font-size:12px}
.notif-h2{margin:12px 0 6px;color:var(--muted)}.notif-pop li.read a{opacity:.62}.notif-pop li.read a strong{font-weight:500}
.is-target{animation:mz-target 2.6s ease-out 1;border-radius:10px}
@keyframes mz-target{0%,35%{box-shadow:0 0 0 3px var(--wood),0 0 0 9px #c88c5533;background-color:#fbefe0}100%{box-shadow:0 0 0 0 transparent}}
:target{scroll-margin-top:90px}
.tn-del button{min-height:0;padding:2px 8px;margin:0}.tn-head small{white-space:nowrap}
.pager{display:flex;gap:12px;align-items:center;justify-content:center;margin:16px 0 4px;flex-wrap:wrap}.pager .mini{margin:0}
.portal-nav .inline-form{margin:0}.portal-nav form button{margin:0}
/* ---------- Agenda (pensé pour le téléphone) ---------- */
.ag-days{display:grid;gap:14px}
.ag-day{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 16px 6px}
.ag-day.today{border-color:var(--wood);box-shadow:inset 4px 0 0 var(--wood)}
.ag-day.is-past{opacity:.7}
.ag-dayh{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;font-size:19px;margin:2px 0 6px;font-family:Georgia,serif;font-weight:400}
.ag-dayh span{text-transform:capitalize;font-weight:700;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;color:#9b693f;letter-spacing:.04em}
.ag-dayh em{font-style:normal;font-size:12px;font-weight:700;background:var(--wood);color:#fff;border-radius:20px;padding:2px 9px;font-family:system-ui,sans-serif}
.ag-free{margin:2px 0 10px;color:var(--muted);font-size:14px}
.ag-ev{display:grid;grid-template-columns:62px minmax(0,1fr);gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.ag-dayh+.ag-ev{border-top:0}
.ag-time{font-weight:700;font-variant-numeric:tabular-nums;font-size:17px;line-height:1.2}
.ag-time small{display:block;color:var(--muted);font-weight:400;font-size:13px;margin-top:3px}
.ag-body{min-width:0;border-left:3px solid var(--line);padding-left:12px}
.ag-client .ag-body{border-left-color:#9b693f}.ag-prospect .ag-body{border-left-color:#4f86c6}.ag-perso .ag-body{border-left-color:#9aa0a6}.ag-intervention .ag-body{border-left-color:#5f8a3a}
.ag-ev.st-propose .ag-body,.ag-ev.st-contre .ag-body{border-left-style:dashed}
.ag-ev.st-annule h3,.ag-ev.st-annule .ag-time span{text-decoration:line-through;opacity:.6}
.ag-ev.past{opacity:.75}
.ag-kind{margin:0 0 2px;font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ag-kind .pill{margin:0}
.ag-tag{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:2px 8px;border-radius:20px;background:#f2ece3;color:#7b5434}
.ag-tag.t-prospect{background:#e6effa;color:#2f5f97}.ag-tag.t-perso{background:#eee;color:#555}.ag-tag.t-intervention{background:#e9f0dc;color:#4f6b25}
.ag-ev h3{margin:0;font-size:17px;line-height:1.3;overflow-wrap:anywhere}
.ag-sub{margin:0;color:var(--muted);font-size:14px}
.ag-loc,.ag-note{margin:6px 0 0;font-size:14px;overflow-wrap:anywhere}
.ag-quote{font-style:italic;color:var(--muted)}
.ag-links{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.ag-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;margin-top:10px}
.ag-actions>details{flex:1 1 100%}
.ag-tool{margin:0;border:0;padding:0}.ag-tool>summary{padding:6px 0;font-size:14px}
.ag-mode{display:grid;gap:4px;margin:0 0 12px}
.ag-todo .ag-ev{border-top:1px solid var(--line)}
.ag-seg{display:flex;flex-wrap:wrap}
.ag-days-pick{display:flex;flex-wrap:wrap;gap:6px 16px}
.slot-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-6px 0 14px}
.slot-chip{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:20px;padding:5px 11px;font:inherit;font-size:13px;cursor:pointer;min-height:34px}
.slot-chip:hover{border-color:var(--wood)}.slot-chip.on{background:var(--wood);border-color:var(--wood);color:#fff}
.slot-select{max-width:100%}
.ag-fab{display:none}
@media(max-width:700px){
  .agenda .dash-head .button{display:none}
  .ag-fab{display:flex;position:fixed;right:16px;bottom:18px;z-index:60;width:58px;height:58px;border-radius:50%;background:var(--ink);color:#fff;font-size:32px;line-height:1;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 8px 24px rgba(0,0,0,.25)}
  .ag-ev{grid-template-columns:52px minmax(0,1fr);gap:10px}
  .ag-day{padding:10px 12px 4px}
  .ag-actions .mini,.ag-links .mini{min-height:40px;display:inline-flex;align-items:center}
}
html.theme-dark :is(.ag-day,.slot-chip){background:#241a14;border-color:#4a3a2e}
html.theme-dark .ag-tag{background:#3a2b20;color:#e3a872}html.theme-dark .ag-tag.t-prospect{background:#1d2a3a;color:#9cc0ea}html.theme-dark .ag-tag.t-perso{background:#333;color:#ccc}html.theme-dark .ag-tag.t-intervention{background:#1f2a17;color:#a9c98a}
/* Emailing : pause horaire de l'envoi, file d'attente */
.camp-wait{margin:0 0 12px;padding:12px 16px;border-left:4px solid var(--wood);background:var(--cream);border-radius:8px;font-size:15px}.camp-wait [data-countdown]{font-variant-numeric:tabular-nums;color:var(--muted)}
.camp-queue{border:2px solid var(--wood)}.camp-queue h2{margin-top:0}.camp-send button{margin-top:4px}

/* ===================== Agenda : grille façon Google Agenda (jour, semaine, mois) — aucun style en ligne (CSP) ===================== */
.agenda{--grid:#e7ddd0;--grid2:#f3ece3;--offbg:#c9b29a1a;--todaybg:#c88c550f}
html.theme-dark .agenda{--grid:#3a3029;--grid2:#2a221c;--offbg:#00000030;--todaybg:#d39c6812}
.t-prospect{--c:#3b73b9;--cf:#e2edfb;--ct:#1b3d66}.t-client{--c:#a0683a;--cf:#f6e7d5;--ct:#55361b}.t-perso{--c:#7b8188;--cf:#eceef0;--ct:#33383d}.t-intervention{--c:#5c8a35;--cf:#e2eed5;--ct:#2f4c17}
html.theme-dark .t-prospect{--c:#78a9e6;--cf:#1b2a3d;--ct:#d6e6fb}html.theme-dark .t-client{--c:#dca46f;--cf:#36261a;--ct:#f6e1cb}html.theme-dark .t-perso{--c:#9aa1a8;--cf:#2a2d31;--ct:#e1e4e7}html.theme-dark .t-intervention{--c:#9cc76f;--cf:#22301a;--ct:#dbedc6}
.cal-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 18px;margin:6px 0 4px}
.cal-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.cal-today{margin-right:4px}
.cal-arrow{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;text-decoration:none;font-size:27px;line-height:1;padding-bottom:4px;color:var(--ink)}
.cal-arrow:hover{background:var(--cream)}
.agenda .cal-h1{margin:0 0 0 6px;font-family:Georgia,serif;font-weight:400;font-size:clamp(24px,2.6vw,34px);line-height:1.15;letter-spacing:-.02em}
.cal-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cal-views a{padding:7px 14px}
.cal-new{min-height:44px;padding:10px 18px}
.cal-sub{margin:0 0 16px;font-size:13px;color:var(--muted)}.cal-sub a{color:inherit}
.cal{--row:13px;margin:0 0 10px;background:var(--paper);border:1px solid var(--grid);border-radius:14px;overflow:clip}
.cal-jour{--row:16px}
.cal-in{display:grid}.cols-1{--days:1}.cols-7{--days:7}
.cal-head,.cal-allday,.cal-body{display:grid;grid-template-columns:52px repeat(var(--days),minmax(0,1fr))}
.cal-head{position:sticky;top:0;z-index:6;background:var(--paper);border-bottom:1px solid var(--grid)}
.cal-corner{font-size:10.5px;color:var(--muted);text-align:right;padding:6px 8px 0 0}
.cal-dh{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0;padding:8px 2px;border-left:1px solid var(--grid);color:var(--ink);text-decoration:none}
.cal-dh span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.cal-dh b{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;font:400 23px/1 Georgia,serif;transition:background .15s}
.cal-dh:hover b{background:var(--cream)}
.cal-dh.today span{color:#9b693f}.cal-dh.today b{background:#9b693f;color:#fff}
.cal-dh.off span,.cal-dh.off b{opacity:.55}.cal-dh.past:not(.today) b{color:var(--muted)}
.cal-jour .cal-dh{flex-direction:row;justify-content:flex-start;gap:10px;padding-left:14px}
.cal-allday{border-bottom:1px solid var(--grid)}
.cal-ad{display:flex;flex-direction:column;gap:3px;min-width:0;padding:3px;border-left:1px solid var(--grid)}
.cal-hours{display:grid;grid-auto-rows:var(--row);grid-template-columns:minmax(0,1fr)}
.cal-hl{grid-column:1;padding:2px 8px 0 0;font-size:11px;line-height:1;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.cal-col{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:var(--row);border-left:1px solid var(--grid);
 background-image:repeating-linear-gradient(to bottom,var(--grid) 0 1px,transparent 1px calc(var(--row)*4)),repeating-linear-gradient(to bottom,var(--grid2) 0 1px,transparent 1px calc(var(--row)*2))}
.cal-col.today{background-color:var(--todaybg)}.cal-col.off{background-color:var(--offbg)}
.cal-col.busy::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(135deg,#5c8a3518 0 8px,transparent 8px 16px)}
.cal-fill,.cal-off,.cal-slot{grid-column:1/-1}.cal-fill,.cal-off{pointer-events:none}.cal-off{background:var(--offbg)}
.cal-slot{position:relative;z-index:1;border-radius:6px;text-decoration:none}
.cal-slot:hover{background:#c88c5524}
.cal-slot:hover::after{content:"+";position:absolute;left:7px;top:50%;transform:translateY(-50%);font-size:15px;font-weight:700;color:#9b693f}
.cal-now{position:absolute;left:-1px;right:0;height:2px;margin-top:-1px;background:#d93025;z-index:5;pointer-events:none}
.cal-now::before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:#d93025}
.cal-ev{position:relative;z-index:2;display:flex;flex-direction:column;gap:1px;min-width:0;margin:1px 3px 1px 2px;padding:3px 7px;border-radius:7px;border-left:4px solid var(--c);background:var(--cf);color:var(--ct);font-size:12px;line-height:1.25;text-decoration:none;overflow:hidden;box-shadow:0 1px 2px #3a24140f;transition:box-shadow .15s}
.cal-ev:hover,.cal-ev:focus-visible{z-index:4;box-shadow:0 4px 14px #3a241426}
.cal-ev>*{flex-shrink:0}.cal-ev .ev-t{font-weight:600;font-variant-numeric:tabular-nums}.cal-ev .ev-f{display:block}
.cal-ev .ev-w{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-ev .ev-k,.cal-ev .ev-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.85}
.ev-f{font-style:normal;font-weight:800;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--c)}
.cal-ev.short{flex-direction:row;align-items:center;gap:6px;padding-top:0;padding-bottom:0;white-space:nowrap}.cal-ev.short .ev-k,.cal-ev.short .ev-l{display:none}
.cal-ev.st-propose{background:var(--paper);border:1px dashed var(--c);border-left:4px solid var(--c)}
.cal-ev.st-contre{background:repeating-linear-gradient(135deg,var(--cf) 0 7px,var(--paper) 7px 14px);border:1px solid var(--c);border-left:4px solid var(--c)}
.cal-ev.st-annule{opacity:.55}.cal-ev.st-annule .ev-w{text-decoration:line-through}.cal-ev.past:not(.st-annule){opacity:.72}
.cal-jour .cal-ev{gap:2px;padding:5px 10px;font-size:13.5px}.cal-jour .cal-ev .ev-w{white-space:normal}
.cal-chip{display:block;min-width:0;padding:2px 7px;border-radius:6px;border-left:3px solid var(--c);background:var(--cf);color:var(--ct);font-size:12px;line-height:1.35;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-chip:hover{filter:brightness(.96)}.cal-chip .ev-t{font-weight:700;font-variant-numeric:tabular-nums}
.cal-chip.st-propose{background:transparent;border:1px dashed var(--c);border-left:3px solid var(--c)}
.cal-chip.st-contre{background:repeating-linear-gradient(135deg,var(--cf) 0 6px,transparent 6px 12px);border:1px solid var(--c);border-left:3px solid var(--c)}
.cal-chip.st-annule{opacity:.55;text-decoration:line-through}.cal-chip.past:not(.st-annule){opacity:.75}
:is(.cal-ev,.cal-chip):is(:target,.is-target){outline:3px solid var(--wood);outline-offset:1px;animation:calpulse 1.4s ease 2}
@keyframes calpulse{50%{outline-color:transparent}}
.cal-mh{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--grid)}
.cal-mh span{padding:8px 4px;text-align:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.cal-mgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(116px,auto)}
.cal-md{position:relative;display:flex;flex-direction:column;gap:3px;min-width:0;padding:4px 4px 8px;border-right:1px solid var(--grid);border-bottom:1px solid var(--grid)}
.cal-md:nth-child(7n){border-right:0}.cal-md.off{background:var(--offbg)}.cal-md.today{background:var(--todaybg)}.cal-md.other>:not(.cal-madd){opacity:.5}
.cal-mn{align-self:center;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-size:13px;font-weight:600;color:var(--ink);text-decoration:none}
.cal-mn:hover{background:var(--cream)}.cal-md.today .cal-mn{background:#9b693f;color:#fff}.cal-md.past:not(.today) .cal-mn{color:var(--muted)}
.cal-chip.extra{display:none}.cal-more{padding:0 7px;font-size:12px;font-weight:700;color:var(--muted);text-decoration:none}.cal-more:hover{color:var(--ink)}
.cal-madd{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:18px;color:#9b693f;text-decoration:none;opacity:0;transition:opacity .15s}
.cal-md:hover .cal-madd,.cal-madd:focus-visible{opacity:1;background:var(--cream)}
@media (hover:none){.cal-madd{opacity:.7}}
.cal-empty{margin:0 2px 12px}
.cal-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:6px 2px 24px;font-size:12.5px;color:var(--muted);overflow-wrap:normal}.cal-legend>span{white-space:nowrap}
.cal-legend .cal-lg::before,.cal-legend .cal-lgs::before{content:"";display:inline-block;width:11px;height:11px;margin-right:6px;border-radius:3px;vertical-align:-1px;background:var(--c)}
.cal-legend .cal-lgs::before{--c:#8f7f6c;--cf:#e9e2d9;width:20px;border-left:3px solid var(--c);background:var(--cf)}
.cal-legend .cal-lgs.st-propose::before{background:var(--paper);border:1px dashed var(--c);border-left:3px solid var(--c)}
.cal-legend .cal-lgs.st-contre::before{background:repeating-linear-gradient(135deg,var(--cf) 0 4px,var(--paper) 4px 8px);border:1px solid var(--c);border-left:3px solid var(--c)}
.cal-legend .cal-lgs.st-annule{text-decoration:line-through}.cal-legend .cal-lgs.st-annule::before{opacity:.5}
html.theme-dark .cal-legend .cal-lgs::before{--c:#ad9d8c;--cf:#2e2620}
.ag-dlg{width:min(600px,calc(100vw - 24px));max-width:none;max-height:min(88vh,920px);overflow:auto;padding:0;border:1px solid var(--line);border-radius:18px;background:var(--paper);color:var(--ink);box-shadow:0 30px 90px #1c120c59}
.ag-dlg[open]{position:fixed;inset:0;z-index:200;margin:auto}
.ag-dlg::backdrop{background:#1c120c73;backdrop-filter:blur(2px)}
.dlg-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 20px;background:var(--paper);border-bottom:1px solid var(--line)}
.dlg-head .eyebrow{margin:0}.agenda .dlg-head h2{margin:0;font-size:24px}
.dlg-x{flex:none;width:40px;height:40px;min-height:40px;margin:0;padding:0;border-radius:50%;font-size:24px;line-height:1}
.ag-dlg .ag-ev{padding:16px 20px 18px;border-top:0}
.ag-dlg-new>.pform{padding:6px 20px 18px}
html.theme-dark .cal-dh.today b,html.theme-dark .cal-md.today .cal-mn{background:var(--wood);color:#1a120c}
html.theme-dark .cal-dh.today span{color:var(--accent)}
html.theme-dark .cal-slot:hover{background:#d39c6826}html.theme-dark .cal-slot:hover::after,html.theme-dark .cal-madd{color:var(--accent)}
html.theme-dark .cal-ev{box-shadow:none}html.theme-dark .cal-ev:hover{box-shadow:0 4px 16px #0009}
html.theme-dark .cal-chip:hover{filter:brightness(1.15)}
html.theme-dark .ag-dlg{border-color:#4a3a2e;box-shadow:0 30px 90px #000c}html.theme-dark .ag-dlg::backdrop{background:#000000a6}
html.theme-dark .ag-fab{background:var(--wood);color:#1a120c}
html.theme-dark .slot-chip.on{color:#1a120c}
@media (max-width:700px){
 .cal-top{gap:10px}.cal-nav{width:100%}.agenda .cal-h1{flex:1 1 100%;order:-1;margin:2px 0 4px;font-size:23px}
 .cal-tools{width:100%}.cal-views{display:flex;flex:1}.cal-views a{flex:1;padding:8px 4px;text-align:center}.cal-new{display:none}
 .cal{margin-left:-6px;margin-right:-6px;border-radius:12px}
 .cal-head,.cal-allday,.cal-body{grid-template-columns:42px repeat(var(--days),minmax(0,1fr))}
 .cal-semaine .cal-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
 .cal-semaine .cal-in{min-width:760px}
 .cal-semaine :is(.cal-hours,.cal-head>.cal-corner,.cal-allday>.cal-corner){position:sticky;left:0;z-index:7;background:var(--paper)}
 .cal-mgrid{grid-auto-rows:minmax(62px,auto)}
 .cal-md{flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:flex-start;gap:3px;padding:3px 2px 6px}
 .cal-md .cal-mn{flex:0 0 28px;margin-inline:calc(50% - 14px)}.cal-md .cal-mn::after{content:"";position:absolute;inset:0}
 .cal-md .cal-chip{flex:none;width:8px;height:8px;padding:0;border:0;border-radius:50%;background:var(--c);font-size:0;pointer-events:none}
 .cal-md .cal-chip.st-propose,.cal-md .cal-chip.st-contre{background:transparent;border:2px solid var(--c)}
 .cal-more,.cal-madd{display:none}.cal-md .cal-chip.extra{display:block}
 .ag-dlg{width:100%;max-height:92vh;border-radius:18px 18px 0 0;border-bottom:0}.ag-dlg[open]{inset:auto 0 0 0;margin:0}
 .dlg-head{padding-left:16px}.ag-dlg .ag-ev{padding:14px 16px 16px}.ag-dlg-new>.pform{padding:4px 16px 16px}
}
.gr-1{grid-row-start:1}.gr-2{grid-row-start:2}.gr-3{grid-row-start:3}.gr-4{grid-row-start:4}.gr-5{grid-row-start:5}.gr-6{grid-row-start:6}.gr-7{grid-row-start:7}.gr-8{grid-row-start:8}.gr-9{grid-row-start:9}.gr-10{grid-row-start:10}.gr-11{grid-row-start:11}.gr-12{grid-row-start:12}.gr-13{grid-row-start:13}.gr-14{grid-row-start:14}.gr-15{grid-row-start:15}.gr-16{grid-row-start:16}.gr-17{grid-row-start:17}.gr-18{grid-row-start:18}.gr-19{grid-row-start:19}.gr-20{grid-row-start:20}.gr-21{grid-row-start:21}.gr-22{grid-row-start:22}.gr-23{grid-row-start:23}.gr-24{grid-row-start:24}.gr-25{grid-row-start:25}.gr-26{grid-row-start:26}.gr-27{grid-row-start:27}.gr-28{grid-row-start:28}.gr-29{grid-row-start:29}.gr-30{grid-row-start:30}.gr-31{grid-row-start:31}.gr-32{grid-row-start:32}.gr-33{grid-row-start:33}.gr-34{grid-row-start:34}.gr-35{grid-row-start:35}.gr-36{grid-row-start:36}.gr-37{grid-row-start:37}.gr-38{grid-row-start:38}.gr-39{grid-row-start:39}.gr-40{grid-row-start:40}.gr-41{grid-row-start:41}.gr-42{grid-row-start:42}.gr-43{grid-row-start:43}.gr-44{grid-row-start:44}.gr-45{grid-row-start:45}.gr-46{grid-row-start:46}.gr-47{grid-row-start:47}.gr-48{grid-row-start:48}.gr-49{grid-row-start:49}.gr-50{grid-row-start:50}.gr-51{grid-row-start:51}.gr-52{grid-row-start:52}.gr-53{grid-row-start:53}.gr-54{grid-row-start:54}.gr-55{grid-row-start:55}.gr-56{grid-row-start:56}.gr-57{grid-row-start:57}.gr-58{grid-row-start:58}.gr-59{grid-row-start:59}.gr-60{grid-row-start:60}.gr-61{grid-row-start:61}.gr-62{grid-row-start:62}.gr-63{grid-row-start:63}.gr-64{grid-row-start:64}.gr-65{grid-row-start:65}.gr-66{grid-row-start:66}.gr-67{grid-row-start:67}.gr-68{grid-row-start:68}.gr-69{grid-row-start:69}.gr-70{grid-row-start:70}.gr-71{grid-row-start:71}.gr-72{grid-row-start:72}.gr-73{grid-row-start:73}.gr-74{grid-row-start:74}.gr-75{grid-row-start:75}.gr-76{grid-row-start:76}.gr-77{grid-row-start:77}.gr-78{grid-row-start:78}.gr-79{grid-row-start:79}.gr-80{grid-row-start:80}.gr-81{grid-row-start:81}.gr-82{grid-row-start:82}.gr-83{grid-row-start:83}.gr-84{grid-row-start:84}.gr-85{grid-row-start:85}.gr-86{grid-row-start:86}.gr-87{grid-row-start:87}.gr-88{grid-row-start:88}.gr-89{grid-row-start:89}.gr-90{grid-row-start:90}.gr-91{grid-row-start:91}.gr-92{grid-row-start:92}.gr-93{grid-row-start:93}.gr-94{grid-row-start:94}.gr-95{grid-row-start:95}.gr-96{grid-row-start:96}
.gs-1{grid-row-end:span 1}.gs-2{grid-row-end:span 2}.gs-3{grid-row-end:span 3}.gs-4{grid-row-end:span 4}.gs-5{grid-row-end:span 5}.gs-6{grid-row-end:span 6}.gs-7{grid-row-end:span 7}.gs-8{grid-row-end:span 8}.gs-9{grid-row-end:span 9}.gs-10{grid-row-end:span 10}.gs-11{grid-row-end:span 11}.gs-12{grid-row-end:span 12}.gs-13{grid-row-end:span 13}.gs-14{grid-row-end:span 14}.gs-15{grid-row-end:span 15}.gs-16{grid-row-end:span 16}.gs-17{grid-row-end:span 17}.gs-18{grid-row-end:span 18}.gs-19{grid-row-end:span 19}.gs-20{grid-row-end:span 20}.gs-21{grid-row-end:span 21}.gs-22{grid-row-end:span 22}.gs-23{grid-row-end:span 23}.gs-24{grid-row-end:span 24}.gs-25{grid-row-end:span 25}.gs-26{grid-row-end:span 26}.gs-27{grid-row-end:span 27}.gs-28{grid-row-end:span 28}.gs-29{grid-row-end:span 29}.gs-30{grid-row-end:span 30}.gs-31{grid-row-end:span 31}.gs-32{grid-row-end:span 32}.gs-33{grid-row-end:span 33}.gs-34{grid-row-end:span 34}.gs-35{grid-row-end:span 35}.gs-36{grid-row-end:span 36}.gs-37{grid-row-end:span 37}.gs-38{grid-row-end:span 38}.gs-39{grid-row-end:span 39}.gs-40{grid-row-end:span 40}.gs-41{grid-row-end:span 41}.gs-42{grid-row-end:span 42}.gs-43{grid-row-end:span 43}.gs-44{grid-row-end:span 44}.gs-45{grid-row-end:span 45}.gs-46{grid-row-end:span 46}.gs-47{grid-row-end:span 47}.gs-48{grid-row-end:span 48}.gs-49{grid-row-end:span 49}.gs-50{grid-row-end:span 50}.gs-51{grid-row-end:span 51}.gs-52{grid-row-end:span 52}.gs-53{grid-row-end:span 53}.gs-54{grid-row-end:span 54}.gs-55{grid-row-end:span 55}.gs-56{grid-row-end:span 56}.gs-57{grid-row-end:span 57}.gs-58{grid-row-end:span 58}.gs-59{grid-row-end:span 59}.gs-60{grid-row-end:span 60}.gs-61{grid-row-end:span 61}.gs-62{grid-row-end:span 62}.gs-63{grid-row-end:span 63}.gs-64{grid-row-end:span 64}.gs-65{grid-row-end:span 65}.gs-66{grid-row-end:span 66}.gs-67{grid-row-end:span 67}.gs-68{grid-row-end:span 68}.gs-69{grid-row-end:span 69}.gs-70{grid-row-end:span 70}.gs-71{grid-row-end:span 71}.gs-72{grid-row-end:span 72}.gs-73{grid-row-end:span 73}.gs-74{grid-row-end:span 74}.gs-75{grid-row-end:span 75}.gs-76{grid-row-end:span 76}.gs-77{grid-row-end:span 77}.gs-78{grid-row-end:span 78}.gs-79{grid-row-end:span 79}.gs-80{grid-row-end:span 80}.gs-81{grid-row-end:span 81}.gs-82{grid-row-end:span 82}.gs-83{grid-row-end:span 83}.gs-84{grid-row-end:span 84}.gs-85{grid-row-end:span 85}.gs-86{grid-row-end:span 86}.gs-87{grid-row-end:span 87}.gs-88{grid-row-end:span 88}.gs-89{grid-row-end:span 89}.gs-90{grid-row-end:span 90}.gs-91{grid-row-end:span 91}.gs-92{grid-row-end:span 92}.gs-93{grid-row-end:span 93}.gs-94{grid-row-end:span 94}.gs-95{grid-row-end:span 95}.gs-96{grid-row-end:span 96}
.lc-1-1{grid-column:1/span 12}.lc-1-2{grid-column:1/span 6}.lc-2-2{grid-column:7/span 6}.lc-1-3{grid-column:1/span 4}.lc-2-3{grid-column:5/span 4}.lc-3-3{grid-column:9/span 4}.lc-1-4{grid-column:1/span 3}.lc-2-4{grid-column:4/span 3}.lc-3-4{grid-column:7/span 3}.lc-4-4{grid-column:10/span 3}
/* Boutons radio : jamais étirés comme un champ texte (règle générale des champs) */
input[type=radio]{display:inline-block;width:18px;height:18px;margin:0;padding:0;border:0;background:none;vertical-align:-3px;accent-color:#402b20}
.check>input[type=radio]{position:absolute;left:0;top:2px}
html.theme-dark input[type=radio]{accent-color:var(--wood)}
.chip input,.pick input,.chip-pick input{width:1px;height:1px}.tc-mode input{margin-top:3px;accent-color:var(--wood)}
html.theme-dark .who-seg input:checked+span{background:var(--wood);color:#1a120c}
.ag-seg{width:100%}
/* Agenda : « À traiter » compact */
.ag-todo h2{margin:0 0 10px}
.ag-todo-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.ag-todo-list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--c,var(--wood));border-radius:10px;background:var(--paper)}
.ag-todo-ev{flex:1 1 260px;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;min-width:0;color:var(--ink);text-decoration:none}
.ag-todo-ev small{flex-basis:100%;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.ag-todo-list form{margin:0}.ag-todo-list form button{margin:0}
.ag-todo-list li:is(:target,.is-target){outline:3px solid var(--wood);outline-offset:2px}
.ag-wait{margin:10px 0 0}
/* Agenda : groupes de champs (« Pour qui ? », « Le contact… », jours travaillés) sans cadre, titre comme les autres champs */
:is(.agenda,.suivi-rdv) fieldset.f{min-width:0;margin:0 0 14px;padding:0;border:0}
:is(.agenda,.suivi-rdv) fieldset.f>legend{padding:0;margin-bottom:8px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#885c38}
html.theme-dark :is(.agenda,.suivi-rdv) fieldset.f>legend{color:var(--accent)}
.ag-mode .check{margin:6px 0}
.who-seg label{margin:0}
.ag-dlg .dlg-notice{margin:14px 20px 0}
.ag-sub{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.ag-sub .button{flex:1 1 220px}.ag-sub-help li{margin:6px 0}
/* Emailing : prospection déjà envoyée */
.tag-mail{background:#efe6f8;color:#5b3a86;white-space:nowrap}html.theme-dark .tag-mail{background:#2e2340;color:#cdb6ef}
.em-name{color:inherit;text-decoration:none}.em-name:hover strong{text-decoration:underline}
.em-mailtabs{margin:-6px 0 14px}
.em-mailed{margin:0 0 14px;padding:10px 12px;border:1px solid var(--line);border-left:4px solid #8b67c2;border-radius:10px;background:var(--paper)}.em-mailed ul{margin:6px 0 0;padding-left:18px}.em-mailed li{margin:4px 0}
.em-mailed-none{margin:-4px 0 12px}
/* Recherche des contacts : propositions pendant la saisie */
.em-search{position:relative;display:block;flex:1 1 220px;min-width:0;max-width:340px}.filters .em-search input[type=search]{width:100%;max-width:none;min-width:0}
@media (max-width:700px){.em-search{flex-basis:100%;max-width:none}.em-sugg{min-width:0}}
.em-sugg{min-width:min(420px,92vw);max-height:420px}
.em-sugg li strong{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.em-sugg li strong b{font-weight:inherit}.em-sugg li strong .tag{font-style:normal;font-size:11px;padding:1px 7px}
.em-sugg li span{overflow-wrap:anywhere}
.em-sugg mark{background:#f4dfb8;color:inherit;border-radius:3px;padding:0 1px}html.theme-dark .em-sugg mark{background:#6b4a1f;color:#fff}
.em-sugg-st{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}
.em-sugg-all{color:var(--accent,#9b693f)!important;font-weight:600!important;border-top:1px solid var(--line);border-radius:0 0 7px 7px!important}
.em-sugg-none{color:var(--muted)!important;cursor:default!important}
/* Zone 4 (secteur de prospection temporaire) et catégories de contacts */
.tag-cat{background:#e3f0e6;color:#2f6b3c;text-decoration:none;white-space:nowrap}.tag-cat:hover{text-decoration:underline}html.theme-dark .tag-cat{background:#203a27;color:#9fd8ad}
.zone4-chip{display:inline-block;margin-top:2px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;background:#fdebd8;color:#8a4b12;white-space:nowrap}html.theme-dark .zone4-chip{background:#4a2f14;color:#f5c48e}
.pm-z4{fill:#e8892b;fill-opacity:.08;stroke:#c8661a;stroke-width:2;stroke-dasharray:7 5}.pm-z4-c{fill:#c8661a}.pm-z4-l{font:700 13px system-ui,sans-serif;fill:#a3520f;paint-order:stroke;stroke:#fff;stroke-width:3px}
html.theme-dark .pm-z4-l{fill:#f5c48e;stroke:#1c1410}
.pm-zoomed circle.pm-z4{display:inline;stroke-width:2.5}
/* Contacts : liste sur toute la largeur, fiche du contact dans une fenêtre */
.em-contacts{display:block}
.em-table th,.em-table td{vertical-align:top}
.em-table td:first-child{min-width:200px}.em-table td:nth-child(2){min-width:190px;overflow-wrap:anywhere}
.em-table td:nth-child(3){min-width:110px}.em-table .call-cell{min-width:120px}
.em-table .st-form{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.em-table .st-form select{min-width:170px;width:auto}
.em-table .row-actions{min-width:150px}.em-table .row-actions>*{display:flex;width:100%;margin:0 0 6px}.em-table .row-actions .mini,.em-table .row-actions button{width:100%;justify-content:center;white-space:nowrap}
.em-table .row-actions form.inline-form{display:block}
.em-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;align-items:start;margin-top:24px}.em-tools>.panel{margin:0}
.em-fiche{width:min(760px,calc(100vw - 24px))}
.em-fiche>.panel{margin:0;border:0;border-radius:0;box-shadow:none;background:transparent;padding:16px 22px 20px}
.em-fiche>.panel+.panel{border-top:1px solid var(--line)}
.em-fiche .dlg-head h2{margin:0;font-size:22px;line-height:1.2}
.em-fiche .dlg-notice{margin:12px 22px 0}
@media (max-width:700px){.em-fiche>.panel{padding:14px 16px 16px}.em-tools{grid-template-columns:1fr}}
.em-table .row-actions>form,.em-table .row-actions>a{margin:0 0 6px!important}
.em-table .row-actions button[aria-label="Supprimer"]{width:auto;margin-left:auto;padding:4px 12px;min-height:0}
.em-table .row-actions>form:last-child{justify-content:flex-end}
.em-fiche>.panel:is(.is-target,:target){background:transparent!important;outline:0!important;box-shadow:none!important;animation:none!important}
.em-badmail{margin:0 0 14px;border-left:4px solid #b4492f}
.em-pause p{margin:0 0 8px}.em-bounce-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 0 16px;padding:8px 12px;border:1px dashed var(--line);border-radius:10px;color:var(--muted)}.em-bounce-bar form{margin:0}
.call-done{display:inline-block;padding:4px 10px;border-radius:8px;font-size:13px;font-weight:600;background:#e3f0e6;color:#2f6b3c;white-space:nowrap}html.theme-dark .call-done{background:#203a27;color:#9fd8ad}
.em-send1 h2{font-size:20px}.em-send1 .row-actions{display:flex;flex-wrap:wrap;gap:8px}.em-one{display:block}.em-one .em-search{display:block;max-width:none}
.dlg-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.dlg-head-actions form{margin:0}
.em-map-dlg{width:min(900px,calc(100vw - 24px))}
.em-map-body{padding:14px 20px 18px}.em-map-body iframe{display:block;width:100%;height:min(60vh,520px);border:1px solid var(--line);border-radius:12px;background:var(--cream)}
.em-map-body p{margin:12px 0}.em-map-body .row-actions{display:flex;flex-wrap:wrap;gap:8px}.em-map-body .row-actions form{margin:0}
@media (max-width:700px){.em-map-body{padding:12px}.em-map-body iframe{height:55vh}.dlg-head-actions .button{padding:6px 10px}}
.em-map-body .row-actions{align-items:stretch}.em-map-body .row-actions .button,.em-map-body .row-actions button{margin:0;display:inline-flex;align-items:center}
.st-kpis{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}
.notice-bad{border-left:4px solid #b4492f!important;background:#fbe9e4!important;color:#7a2a17!important;font-weight:600}html.theme-dark .notice-bad{background:#3d1d15!important;color:#f5c1b3!important}.em-mailed li.em-fail{color:#b4492f}html.theme-dark .em-mailed li.em-fail{color:#f0957d}
.em-bb-act{display:flex;gap:8px;flex-wrap:wrap}
.em-check h2 small{font-size:13px;font-weight:400}.em-ck{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.em-ck li{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.em-ck li>span{flex:0 0 22px;height:22px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff}
.em-ck li small{overflow-wrap:anywhere}
.ck-ok>span{background:#3d7a3a}.ck-warn>span{background:#d08a1e}.ck-bad>span{background:#b4492f}.ck-bad{border-color:#e7b7aa!important}
.em-ck-bad{color:#b4492f}.em-ck-ok{color:#3d7a3a}html.theme-dark .em-ck-bad{color:#f0957d}html.theme-dark .em-ck-ok{color:#8fcf86}
/* Agenda : tâches à faire (bloquent le créneau ; barrées une fois faites) */
.t-tache{--c:#7a5aa6;--cf:#efe8f7;--ct:#3e2a5c}html.theme-dark .t-tache{--c:#b39ae0;--cf:#2b2238;--ct:#e9e0f7}
.ag-tache .ag-body{border-left-color:#7a5aa6}.ag-tag.t-tache{background:#efe8f7;color:#5b3f86}html.theme-dark .ag-tag.t-tache{background:#2b2238;color:#cdb8f0}
.ag-ev.st-fait h3{text-decoration:line-through;opacity:.65}
.cal-ev.st-fait{opacity:.6}.cal-ev.st-fait .ev-w,.cal-chip.st-fait{text-decoration:line-through}.cal-chip.st-fait{opacity:.65}
.cal-tools .cal-new+.cal-new{margin-left:6px}
/* ===== Application du téléphone : barre d'onglets en bas, plein écran une fois installée ===== */
.app-tabs{display:none}
@media(max-width:700px){
  body[data-private="1"]{padding-bottom:calc(74px + env(safe-area-inset-bottom))}
  .app-tabs{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:75;background:var(--paper);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -6px 18px rgba(0,0,0,.07)}
  .app-tabs.tabs-2{grid-template-columns:1fr 1fr}
  .app-tabs>a,.app-more>summary{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:4px 2px;color:var(--muted);text-decoration:none;font-size:11.5px;font-weight:600;line-height:1.1;border-radius:12px;list-style:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .app-more>summary::-webkit-details-marker{display:none}
  .app-tabs .on{color:var(--ink);background:var(--cream)}.app-tabs .on svg{stroke:var(--wood)}
  .app-more{position:relative}.app-more[open]>summary{color:var(--ink)}
  .app-more-pop{position:absolute;right:2px;bottom:calc(100% + 12px);min-width:210px;display:grid;gap:2px;padding:6px;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 34px rgba(0,0,0,.2)}
  .app-more-pop a{padding:13px 14px;border-radius:10px;color:var(--ink);text-decoration:none;font-weight:600}.app-more-pop a.on{background:var(--cream)}
  .portal-nav>a{display:none}
  .ag-fab{bottom:calc(86px + env(safe-area-inset-bottom))}
}
html.theme-dark .app-tabs{background:var(--surface);box-shadow:0 -6px 18px rgba(0,0,0,.4)}html.theme-dark .app-more-pop{background:var(--surface2)}
@media (display-mode:standalone){body[data-private="1"] :is(.topline,body>header,body>footer){display:none}body[data-private="1"]{padding-top:env(safe-area-inset-top)}}
html.is-app body[data-private="1"] :is(.topline,body>header,body>footer){display:none}html.is-app body[data-private="1"]{padding-top:env(safe-area-inset-top)}
.app-panel .app-install{margin:10px 0 16px}.app-panel .app-ok{color:#4f6b25;font-weight:600}.app-h3{font-size:17px;margin:18px 0 8px}.app-steps{padding-left:18px}.app-steps li{margin:6px 0}
.pk-list li small{display:block}
.pk-or{display:flex;align-items:center;gap:10px;margin:18px 0 12px;color:var(--muted);font-size:14px}.pk-or::before,.pk-or::after{content:"";flex:1;height:1px;background:var(--line)}
.pk-btn{width:100%;justify-content:center}.pk-hint{text-align:center;margin:6px 0 0}
.app-tabs details.app-more{border:0;padding:0;margin:0;background:none;box-shadow:none;border-radius:0}.app-tabs .app-more>summary{border:0;box-shadow:none;margin:0}.app-tabs .app-more>summary::after,.app-tabs .app-more>summary::before{content:none;display:none}
.app-tabs .app-more>summary.on,.app-tabs .app-more[open]>summary{background:var(--cream)}
.todo li.php-bad{color:#a23b2a;font-weight:600}.todo li.php-ok{color:#4f6b25}html.theme-dark .todo li.php-bad{color:#f08a74}html.theme-dark .todo li.php-ok{color:#a9cf7d}
.tel-pop{position:fixed;z-index:200;display:grid;gap:8px;padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.tel-pop strong{font-size:17px}.tel-pop button{width:100%;margin:0}.tel-pop small{color:var(--muted);font-size:12.5px;line-height:1.4}
html.theme-dark .tel-pop{background:var(--surface2)}

/* ===================== APPLICATION ANDROID / TÉLÉPHONE (v2) — uniquement sur l'espace connecté, écran ≤ 700 px ===================== */
.app-bar-title,.fiche-quick{display:none}
@media(max-width:700px){
  body[data-private="1"]{-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}
  body[data-private="1"] :is(input,select,textarea){font-size:16px} /* pas de zoom automatique à la saisie */
  .portal{padding:0 14px 24px}
  /* Barre du haut compacte et fixe : avatar · titre de la rubrique · cloche */
  .portal-bar{position:sticky;top:0;z-index:80;display:flex;flex-wrap:nowrap;align-items:center;gap:10px;margin:0 -14px 14px;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--paper);box-shadow:0 2px 10px rgba(0,0,0,.05)}
  html.is-app body[data-private="1"]{padding-top:0}
  .portal-who{flex:none;gap:0}.portal-who>div{display:none}.portal-who .avatar{width:36px;height:36px;font-size:16px}
  .app-bar-title{display:block;flex:1;min-width:0;font-size:20px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
  .portal-nav{flex:none;flex-wrap:nowrap;gap:0}.portal-nav>:not(.notif){display:none!important}
  .portal-nav .notif>button,.portal-nav .notif>a{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center}
  /* En-têtes de page plus sobres */
  .dash-head{margin:2px 0 14px;gap:10px;align-items:center}.dash-head .eyebrow{font-size:11px;margin:0 0 2px}
  .portal h1{font-size:24px;line-height:1.15;letter-spacing:-.01em}
  .dash-head .muted{font-size:14px;margin:4px 0 0}
  .dash-head .button,.dash-head .row-actions .button{padding:10px 14px;font-size:15px}
  /* Onglets secondaires : une seule ligne qui défile */
  .subtabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -14px 14px;padding:0 10px;-webkit-overflow-scrolling:touch}
  .subtabs::-webkit-scrollbar{display:none}.subtabs a{white-space:nowrap;padding:12px 12px;flex:none}
  .panel{padding:16px;border-radius:14px}
  /* Tableaux : jamais plus larges que l'écran */
  .table-wrap{overflow-x:auto;max-width:100%}
  .clients-table thead{display:none}
  .clients-table,.clients-table tbody{display:block}
  .clients-table tr{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:12px 4px;border-bottom:1px solid var(--line)}
  .clients-table td{display:block;padding:0;border:0}
  .clients-table td:nth-child(1){grid-column:1}.clients-table td:nth-child(3){grid-column:2;grid-row:1;text-align:right}
  .clients-table td:nth-child(5){grid-column:1/-1;font-size:13px}
  /* Barre d'onglets du bas, style Material 3 : pastille derrière l'icône */
  .app-tabs{padding:4px 2px calc(4px + env(safe-area-inset-bottom));height:auto}
  .app-tabs>a,.app-more>summary{background:none!important;gap:4px;min-height:60px;font-size:12px;user-select:none}
  .app-tabs>a svg,.app-more>summary svg{width:56px;height:30px;padding:4px 16px;border-radius:16px;transition:background .2s}
  .app-tabs .on svg,.app-more[open]>summary svg{background:var(--cream);stroke:var(--ink)}
  html.theme-dark .app-tabs .on svg,html.theme-dark .app-more[open]>summary svg{background:#3a2a1d;stroke:#f2c79a}
  .app-tabs .on{color:var(--ink);font-weight:700}
  .app-tabs.tabs-3{grid-template-columns:repeat(3,1fr)}
  .app-tabs>a:active svg,.app-more>summary:active svg{background:var(--line)}
  /* « Plus » : feuille qui monte du bas */
  .app-more{position:static}
  .app-sheet-bg{position:fixed;inset:0;z-index:-1;background:rgba(0,0,0,.45)}
  .app-more-pop{position:fixed;left:0;right:0;bottom:0;top:auto;min-width:0;z-index:1;border-radius:22px 22px 0 0;border:0;padding:8px 10px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(0,0,0,.3);animation:sheet-up .22s ease-out}
  .app-more[open]{z-index:90}
  .app-sheet-grip{display:block;width:40px;height:4px;border-radius:2px;background:var(--line);margin:4px auto 10px}
  .app-more-pop a,.app-sheet-row{display:flex;align-items:center;gap:16px;width:100%;min-height:54px;padding:10px 14px;border:0;border-radius:12px;background:none;color:var(--ink);font:inherit;font-size:16px;font-weight:600;text-align:left;text-decoration:none;cursor:pointer;margin:0}
  .app-more-pop a svg,.app-sheet-row svg{flex:none;width:24px;height:24px}
  .app-more-pop a.on{background:var(--cream)}.app-more-pop form{margin:0}
  .app-more-pop a:active,.app-sheet-row:active{background:var(--line)}
  @keyframes sheet-up{from{transform:translateY(100%)}to{transform:none}}
  /* Fenêtres (fiche prospect, rendez-vous…) : plein écran, comme un écran d'appli */
  .ag-dlg[open]{inset:0;width:100%;height:100%;max-height:none;border-radius:0;border:0}
  .dlg-head{min-height:56px;padding:calc(6px + env(safe-area-inset-top)) 8px 6px 16px}
  .dlg-head h2,.dlg-head .eyebrow{font-size:19px}
  .ag-fab{width:60px;height:60px;border-radius:18px;right:16px}
  /* Agenda : l'essentiel d'abord */
  .agenda .cal-sub{font-size:0;margin:4px 0 10px}.agenda .cal-sub a{font-size:13px;margin-right:12px}
  .cal-top{gap:8px}.cal-h1{font-size:22px!important}
  /* Fiche prospect : actions rapides en haut, puis le suivi avant le formulaire */
  .fiche-quick{display:flex;gap:8px;overflow-x:auto;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:56px;z-index:2;scrollbar-width:none}
  .fiche-quick::-webkit-scrollbar{display:none}
  .fiche-quick a{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px;padding:8px 10px;border-radius:14px;background:var(--cream);color:var(--ink);text-decoration:none;font-size:12.5px;font-weight:700}
  .fiche-quick a span{font-size:20px;line-height:1}
  html.theme-dark .fiche-quick a{background:#2a211b}
  dialog.em-fiche[open]{display:flex;flex-direction:column}
  dialog.em-fiche>*{flex:none}dialog.em-fiche>.dlg-head{order:-3}dialog.em-fiche>.fiche-quick{order:-2}dialog.em-fiche>.dlg-notice{order:-2}dialog.em-fiche>#suivi{order:-1}
  dialog.em-fiche>.panel{margin:12px;border-radius:14px}
  /* Boutons : zones de toucher confortables */
  body[data-private="1"] .button,body[data-private="1"] button:not(.mini):not(.link-btn):not(.dlg-x){min-height:44px}
  html.theme-dark .portal-bar{background:var(--surface);border-color:#3a3029}
}
@media(max-width:700px){
  .em-fiche .dlg-head h2{font-size:19px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .em-fiche .dlg-head-actions .button.mini{font-size:0;width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:12px}
  .em-fiche .dlg-head-actions .button.mini::before{content:"📍";font-size:20px}
  .em-fiche .dlg-head-actions .small.muted{display:none}
  .dlg-x{width:44px;height:44px;font-size:24px}
  .notif-pop{position:fixed!important;left:8px!important;right:8px!important;top:calc(58px + env(safe-area-inset-top))!important;width:auto!important;max-height:70vh;overflow:auto}
}
@media(max-width:700px){
  .app-more-pop .app-sheet-row{background:none!important;color:var(--ink)!important;box-shadow:none!important;border:0!important;justify-content:flex-start;min-height:54px;font-weight:600}
  .app-more-pop .app-sheet-row:active{background:var(--line)!important}
  body[data-private="1"] :is(.topline,body>header,body>footer){display:none} /* l'espace connecté sur téléphone : la barre de l'appli remplace l'en-tête du site */
}
/* Prospects : horaires d'ouverture et site internet */
.oh-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px 2px 7px;border-radius:20px;font-size:12px;font-weight:700;line-height:1.6;vertical-align:middle;white-space:nowrap}
.oh-badge::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.oh-badge.is-open{background:#e3f1dc;color:#2f6b1f}.oh-badge.is-closed{background:#f6e3df;color:#a23b2a}
html.theme-dark .oh-badge.is-open{background:#1f3318;color:#9fd486}html.theme-dark .oh-badge.is-closed{background:#3a1f1a;color:#f0a090}
.web-link{text-decoration:none;font-size:15px;vertical-align:middle}
.oh-box{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px 14px;margin:2px 0 16px}
.oh-det{flex:1 1 240px}.oh-det>summary{cursor:pointer;list-style:none;font-weight:600;font-size:15px}.oh-det>summary::-webkit-details-marker{display:none}
.oh-more{color:var(--muted);font-weight:400;font-size:13px}
.oh-week{border-collapse:collapse;margin:8px 0 4px;font-size:14px}.oh-week th{text-align:left;font-weight:600;padding:3px 14px 3px 0;color:var(--muted)}.oh-week td{padding:3px 0}
.oh-week tr.today th,.oh-week tr.today td{color:var(--ink);font-weight:700}
.oh-help code{font-size:12px}
@media(max-width:700px){.fiche-quick{flex-wrap:nowrap}.fiche-quick a{min-width:60px}}
/* Agenda : glisser-déposer */
[data-mv]{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
html.dnd-on,html.dnd-on *{cursor:grabbing!important}
.dnd-src{opacity:.35}
.dnd-ghost{position:fixed;z-index:300;pointer-events:none;border:2px dashed var(--c,var(--wood));border-radius:8px;background:color-mix(in srgb,var(--cf,#f6e7d5) 70%,transparent)}
.dnd-tip{position:fixed;z-index:301;pointer-events:none;padding:6px 10px;border-radius:10px;background:var(--ink);color:var(--paper);font-size:13px;font-weight:700;white-space:nowrap;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.dnd-form{padding:8px 20px 18px}.dnd-what{font-weight:700;font-size:17px;margin:6px 0}.dnd-when{margin:0 0 12px}.dnd-when span:first-child{text-decoration:line-through;color:var(--muted)}
/* Disponibilités proposées aux clients / prospects */
.slot-pick{display:grid;gap:12px;margin:6px 0}
.slot-day{border:0;padding:0;margin:0}.slot-day legend{font-weight:700;font-size:15px;margin:0 0 6px;padding:0}
.slot-times{display:flex;flex-wrap:wrap;gap:6px}
.slot-chip{position:relative;cursor:pointer}.slot-chip input{position:absolute;opacity:0;width:1px;height:1px}
.slot-chip span{display:inline-block;min-width:64px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;text-align:center;font-weight:600;font-size:15px;background:var(--paper)}
.slot-chip input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.slot-chip input:focus-visible+span{outline:3px solid var(--wood);outline-offset:2px}
.slot-more>summary{cursor:pointer;font-weight:600;margin:4px 0 10px;color:var(--wood)}.slot-more .slot-day{margin-bottom:12px}
html.theme-dark .slot-chip input:checked+span{background:var(--wood);color:#1a120c;border-color:var(--wood)}
.slot-pick .slot-chip{display:inline-block;margin:0;padding:0;border:0;background:none;box-shadow:none;min-height:0;width:auto}
.slot-pick .slot-chip::before,.slot-pick .slot-chip::after{content:none}
.slot-pick .slot-times{gap:6px}
/* Attestations d'assurance */
.att-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.att-list a{display:block;padding:10px 12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink)}
.att-list a:hover{background:var(--cream)}.att-list small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.att-rows li{align-items:flex-start}.att-rows small{display:block}
.att-rows li{flex-wrap:wrap;gap:8px}.att-rows .row-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
@media (max-width:640px){.att-rows li{flex-direction:column}.att-rows .row-actions{width:100%}}
.att-rows .row-actions .mini.outline{margin:0}

/* Fenêtre de saisie : modifications non enregistrées */
.unsaved-bar{position:sticky;bottom:0;z-index:5;margin:16px -4px 0;padding:14px 16px;background:var(--paper);border:1.5px solid var(--wood);border-radius:12px;box-shadow:0 -6px 24px rgba(48,35,28,.18)}
.unsaved-bar p{margin:0 0 10px;font-weight:600}.unsaved-bar .row-actions{display:flex;flex-wrap:wrap;gap:8px}.unsaved-bar:focus{outline:none}
/* Envoi des documents (attestations, Kbis) depuis les fiches */
.att-docs{border:0;margin:0 0 6px;padding:0;display:grid;gap:6px}.att-docs legend{margin-bottom:6px;color:var(--muted)}
.att-docs .check{align-items:flex-start}.att-docs small{display:block}
.att-missing{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 12px}
/* ================= Menu de l'application : rubriques en cartes (portfolio des dessins d'atelier) ================= */
.mz-menu{position:relative;isolation:isolate;padding:6px 0 26px}
.mz-menu-bg{position:absolute;inset:-14px -16px -10px;z-index:-1;overflow:hidden;border-radius:22px;background:
  repeating-linear-gradient(0deg,rgba(200,140,85,.08) 0 1px,transparent 1px 28px),repeating-linear-gradient(90deg,rgba(200,140,85,.08) 0 1px,transparent 1px 28px),var(--paper);
  animation:mzGrid 60s linear infinite}
.mz-menu-bg span{position:absolute;border-radius:50%;filter:blur(46px);opacity:.55;will-change:transform}
.mz-menu-bg span:nth-child(1){width:46vmax;height:46vmax;left:-16vmax;top:-12vmax;background:radial-gradient(circle,#e3a872 0%,transparent 65%);animation:mzBlobA 22s ease-in-out infinite alternate}
.mz-menu-bg span:nth-child(2){width:40vmax;height:40vmax;right:-14vmax;top:20%;background:radial-gradient(circle,#c88c55 0%,transparent 62%);opacity:.38;animation:mzBlobB 27s ease-in-out infinite alternate}
.mz-menu-bg span:nth-child(3){width:34vmax;height:34vmax;left:20%;bottom:-16vmax;background:radial-gradient(circle,#f2d4b4 0%,transparent 60%);opacity:.6;animation:mzBlobC 31s ease-in-out infinite alternate}
html.theme-dark .mz-menu-bg{background:repeating-linear-gradient(0deg,rgba(211,156,104,.07) 0 1px,transparent 1px 28px),repeating-linear-gradient(90deg,rgba(211,156,104,.07) 0 1px,transparent 1px 28px),#120e0b}
html.theme-dark .mz-menu-bg span{opacity:.28}
@keyframes mzGrid{to{background-position:0 280px,280px 0,0 0}}
@keyframes mzBlobA{to{transform:translate(18vmax,10vmax) scale(1.15)}}
@keyframes mzBlobB{to{transform:translate(-14vmax,-8vmax) scale(.9)}}
@keyframes mzBlobC{to{transform:translate(-10vmax,-12vmax) scale(1.2)}}
.mz-menu-head{margin:6px 0 18px}.mz-menu-head h1{margin:2px 0 4px;font-size:clamp(28px,6vw,40px)}.mz-menu-head .muted{margin:0}
.mz-menu-head>*{animation:mzIn .7s cubic-bezier(.2,.7,.2,1) both}.mz-menu-head>:nth-child(2){animation-delay:.06s}.mz-menu-head>:nth-child(3){animation-delay:.12s}
.mz-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;perspective:900px}
@media(min-width:760px){.mz-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}
@media(min-width:760px){.mz-cards{grid-auto-flow:row dense}}
@media(min-width:1150px){.mz-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.mz-end{grid-column:span 2}}
.mz-card{position:relative;overflow:hidden;min-height:156px;border-radius:18px;background:#2a211b;color:#fff;box-shadow:0 10px 26px rgba(48,35,28,.18),0 1px 0 rgba(255,255,255,.06) inset;
  transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(0);transition:transform .25s ease,box-shadow .3s ease;animation:mzIn .75s cubic-bezier(.2,.7,.2,1) both;-webkit-tap-highlight-color:transparent}
.mz-big{grid-column:span 2;min-height:196px}
@media(min-width:760px){.mz-card{min-height:190px}.mz-big{min-height:230px}}
.mz-card:nth-child(1){animation-delay:.08s}.mz-card:nth-child(2){animation-delay:.14s}.mz-card:nth-child(3){animation-delay:.2s}.mz-card:nth-child(4){animation-delay:.26s}
.mz-card:nth-child(5){animation-delay:.32s}.mz-card:nth-child(6){animation-delay:.38s}.mz-card:nth-child(7){animation-delay:.44s}.mz-card:nth-child(8){animation-delay:.5s}
.mz-card:nth-child(9){animation-delay:.56s}.mz-card:nth-child(10){animation-delay:.62s}.mz-card:nth-child(11){animation-delay:.68s}.mz-card:nth-child(12){animation-delay:.74s}
@keyframes mzIn{from{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:none}}
.mz-card-img{position:absolute;inset:-8%;background:center/cover no-repeat;animation:mzDrift 20s ease-in-out infinite alternate;transition:transform .6s ease}
.mz-card:nth-child(even) .mz-card-img{animation-duration:26s;animation-direction:alternate-reverse}
.mz-card:nth-child(3n) .mz-card-img{animation-duration:23s}
@keyframes mzDrift{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.12) translate(-3%,-2%)}}
.mz-card-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,24,20,.18) 0%,rgba(30,24,20,.42) 30%,rgba(24,18,14,.82) 58%,rgba(20,15,12,.95) 100%)}
.mz-card::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(255,236,214,.22),transparent 45%)}
.mz-card:hover::after{opacity:1}
.mz-card{display:grid}.mz-card-body{grid-area:1/1;position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;gap:8px;padding:14px}
.mz-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:#f6d6b4;background:rgba(30,22,17,.55);border:1px solid rgba(255,250,244,.22);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:transform .3s}
.mz-ico svg{width:22px;height:22px}
.mz-card h2{margin:auto 0 0;font-size:17px;line-height:1.2;letter-spacing:-.01em;text-shadow:0 1px 10px rgba(0,0,0,.45)}
.mz-big h2{font-size:21px}
.mz-card-link{color:#fff;text-decoration:none}.mz-card-link::before{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
.mz-card-link:focus-visible{outline:none}.mz-card:focus-within{box-shadow:0 0 0 3px var(--wood),0 10px 26px rgba(48,35,28,.2)}
.mz-stat{margin:0;font-size:12.5px;line-height:1.4;color:rgba(255,248,240,.84);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.mz-big .mz-stat{font-size:13.5px}
.mz-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#ffb169;margin-right:6px;vertical-align:1px;box-shadow:0 0 0 0 rgba(255,177,105,.7);animation:mzPulse 1.8s ease-out infinite}
@keyframes mzPulse{70%{box-shadow:0 0 0 9px rgba(255,177,105,0)}100%{box-shadow:0 0 0 0 rgba(255,177,105,0)}}
.mz-alert{box-shadow:0 0 0 1.5px rgba(255,177,105,.75),0 10px 26px rgba(48,35,28,.2)}
.mz-links{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:6px}
.mz-links a{padding:5px 10px;border-radius:30px;font-size:12px;font-weight:600;color:#fff;text-decoration:none;background:rgba(30,22,17,.45);border:1px solid rgba(255,250,244,.22);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .2s}
.mz-links a:hover,.mz-links a:focus-visible{background:rgba(255,250,244,.3)}
@media(hover:hover) and (pointer:fine){.mz-card:hover{box-shadow:0 18px 40px rgba(48,35,28,.28)}.mz-card:hover .mz-card-img{transform:scale(1.06)}.mz-card:hover .mz-ico{transform:translateY(-2px) rotate(-4deg)}}
.mz-card:active{transform:scale(.975);transition-duration:.08s}
@media(max-width:420px){.mz-card:not(.mz-big) .mz-links{display:none}.mz-card{min-height:148px}.mz-card h2{font-size:16px}}
.mz-card.mc-agenda .mz-card-img{background-image:url(/img/menu/agenda.webp?v=2)}.mz-card.mc-prospects .mz-card-img{background-image:url(/img/menu/prospects.webp?v=2)}
.mz-card.mc-accueil .mz-card-img{background-image:url(/img/menu/accueil.webp?v=2)}.mz-card.mc-clients .mz-card-img{background-image:url(/img/menu/clients.webp?v=2)}
.mz-card.mc-factures .mz-card-img{background-image:url(/img/menu/factures.webp?v=2)}.mz-card.mc-catalogue .mz-card-img{background-image:url(/img/menu/catalogue.webp?v=2)}
.mz-card.mc-pilotage .mz-card-img{background-image:url(/img/menu/pilotage.webp?v=2)}.mz-card.mc-assurances .mz-card-img{background-image:url(/img/menu/assurances.webp?v=2)}
.mz-card.mc-sauvegardes .mz-card-img{background-image:url(/img/menu/sauvegardes.webp?v=2)}.mz-card.mc-compte .mz-card-img{background-image:url(/img/menu/compte.webp?v=2)}
.mz-card.mc-reglages .mz-card-img{background-image:url(/img/menu/reglages.webp?v=2)}
.mz-card.mc-evenements .mz-card-img{background-image:url(/img/menu/evenements.webp?v=1)}
.mz-card.mc-site .mz-card-img{background-image:url(/img/menu/site.webp?v=2)}
.mz-utils{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;animation:mzIn .7s .8s cubic-bezier(.2,.7,.2,1) both}.mz-utils form{margin:0}
.mz-util{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:14px;border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 82%,transparent);color:var(--ink);font-weight:600;font-size:14px;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.mz-util svg{width:20px;height:20px;color:var(--wood)}
html.theme-dark .mz-util{background:rgba(40,32,27,.85);color:var(--ink);border-color:var(--line)}.mz-util:hover{border-color:var(--wood)}
@media(prefers-reduced-motion:reduce){.mz-menu-bg,.mz-menu-bg span,.mz-card,.mz-card-img,.mz-dot,.mz-menu-head>*,.mz-utils{animation:none!important}.mz-card{transform:none!important}}
/* Sauvegardes (r81) */
.bk-grid{list-style:none;margin:16px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.bk-grid li{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-left:4px solid #b9ab9b;border-radius:10px;background:var(--paper)}
.bk-grid li.ok{border-left-color:#3f8a4c}.bk-grid li.warn{border-left-color:#c0803c}.bk-grid li.bad{border-left-color:#b4492f}.bk-grid li.off{border-left-color:var(--line)}
.bk-grid li>span:last-child{min-width:0}.bk-grid strong{display:block;font-size:15px;line-height:1.3}.bk-grid small{display:block;color:var(--muted);font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.bk-ic{font-size:22px;line-height:1.2}
.bk-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:6px 0 4px}.bk-actions .inline-form{margin:0}.bk-actions button{margin-top:0}
.bk-list li form{margin:0}.bk-list li button{margin-top:0}.bk-list li .mini.outline{margin-right:0}
code.sel{user-select:all;-webkit-user-select:all;cursor:text}.bk-url{display:inline-block;max-width:100%;overflow-wrap:anywhere;word-break:break-all}
html.theme-dark .bk-grid li{background:var(--surface,#1e1814)}html.theme-dark .bk-grid li.ok{border-left-color:#6dbb78}html.theme-dark .bk-grid li.bad{border-left-color:#ef8f74}
@media (max-width:560px){.bk-list li{flex-wrap:wrap}.bk-list li>span{flex-basis:100%}}
/* Agenda : jours fermés aux clients, aide « hors horaires », glisser pour changer de jour (r83) */
.cal-dh .cal-closed{display:block;font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--muted);opacity:1;margin-top:2px;line-height:1.3}
.cal-dh.off .cal-closed{opacity:1}
.ag-offhint{margin:-6px 0 12px;padding:8px 12px;border-left:3px solid #c88c55;background:#c88c5514;border-radius:0 6px 6px 0;color:var(--ink)}
.cal-swipe-hint{margin:2px 0 0;font-size:12px;color:var(--muted)}
.agenda{overflow-x:clip}
.cal-jour,.cal-mois{touch-action:pan-y pinch-zoom}
.cal.ag-snap{transition:transform .25s ease-out}
.cal.ag-out{transition:transform .15s ease-in,opacity .15s ease-in}
@keyframes agInNext{from{transform:translateX(28%);opacity:0}to{transform:none;opacity:1}}
@keyframes agInPrev{from{transform:translateX(-28%);opacity:0}to{transform:none;opacity:1}}
.cal.ag-in-next{animation:agInNext .2s ease-out}
.cal.ag-in-prev{animation:agInPrev .2s ease-out}
@media (prefers-reduced-motion:reduce){.cal.ag-snap,.cal.ag-out{transition:none}.cal.ag-in-next,.cal.ag-in-prev{animation:none}}
/* Notifications : sonnerie, bandeau quand l'application est ouverte (r83) */
.push-sound{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.push-sound h4{margin:0 0 6px;font-size:16px}
.mz-toast{position:fixed;z-index:300;left:12px;right:12px;top:calc(10px + env(safe-area-inset-top,0px));max-width:520px;margin:0 auto;display:block;padding:12px 16px;border-radius:14px;background:var(--ink);color:var(--paper);text-decoration:none;box-shadow:0 10px 30px #0004;transform:translateY(-130%);transition:transform .3s ease}
.mz-toast.on{transform:none}
.mz-toast strong{display:block;font-size:15px}.mz-toast span{display:block;font-size:13px;opacity:.85;margin-top:2px}
@media (prefers-reduced-motion:reduce){.mz-toast{transition:none}}
/* Relance d'un rendez-vous à confirmer (r84) */
.ag-todo-h{font-size:15px;margin:14px 0 6px}.ag-todo-h small{font-weight:400;color:var(--muted);font-size:13px}
.ag-wait-list li{display:flex;align-items:center;gap:10px}.ag-wait-list li>a{flex:1;min-width:0}.ag-wait-list .inline-form{margin:0}.ag-wait-list button{margin-top:0;white-space:nowrap}
.ag-rem{margin:2px 0 6px}
.suivi-remind{display:block;margin:-4px 0 10px}.suivi-remind button{margin-top:0}
/* Messagerie : une conversation par client (r85) */
.msg small .msg-ctx{font-style:italic;opacity:.85}
.app-tabs.tabs-4{grid-template-columns:repeat(4,1fr)}
.app-tabs .tab-msg{position:relative}
.tab-badge{position:absolute;top:2px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#c0392b;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}
/* Pilotage → Réglages : lien vers « Événements du site » */
.evs-link{display:flex;align-items:center;justify-content:space-between;gap:16px;text-decoration:none;color:var(--ink)}
.evs-link strong{display:block;font-size:18px}.evs-link .small{display:block;margin-top:2px}
.evs-link .evs-go{font-size:22px;color:var(--wood);transition:transform .2s}.evs-link:hover{border-color:var(--wood)}.evs-link:hover .evs-go{transform:translateX(4px)}
/* Bandeau du haut pendant un événement saisonnier (couleurs et animations : assets/events.css) */
.ev-top .ev-msg{display:inline-flex;align-items:center;gap:9px;min-width:0}.ev-top .ev-ico{flex:none}
.ev-top-hal{background:#1b1114}
html:not(.theme-dark) .ev-top-ete{background:#c88c55;color:#2b1a10}html:not(.theme-dark) .ev-top-ete a{color:#2b1a10}
.ev-preview-tag{position:fixed;z-index:120;left:50%;bottom:16px;transform:translateX(-50%);max-width:92vw;margin:0;padding:8px 14px;border-radius:20px;background:#30231ce6;color:#fff;font-size:13px;font-weight:600;text-align:center;box-shadow:0 6px 20px #0000004d;pointer-events:none}
@media(max-width:600px){.ev-preview-tag{bottom:auto;top:8px;font-size:12px}}
.ev-pause{flex:none;align-self:center;width:28px;height:28px;min-height:0;padding:0;margin:-4px 2px -4px auto;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit;opacity:.8}
.ev-pause:hover{background:#ffffff26;opacity:1}.ev-pause svg{display:block;margin:auto}
/* Contrats & assurances : modifier un document (type, intitulé, dates) */
.att-rows details.att-edit{border:0;padding:0;margin:0;background:none}
.att-edit>summary{list-style:none;cursor:pointer}.att-edit>summary::-webkit-details-marker{display:none}
.att-edit[open]{flex-basis:100%;order:9}.att-edit form{margin-top:8px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);max-width:560px}
.att-edit .f{margin-bottom:10px}
/* Envoi des documents : test à l'adresse de Victor et bilan */
.att-test{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}.att-test .f{margin-bottom:8px}.att-test .small{margin:6px 0 0}
.att-test-result{margin:0 0 14px;padding:12px 14px;border-radius:10px;border:1px solid #b9d7c0;background:#eef7f0}
.att-test-result.ko{border-color:#e6c08f;background:#fbf1e2}
.att-test-result p{margin:0 0 6px}.att-test-result ul{margin:0;padding-left:18px;font-size:14px;display:grid;gap:4px}
.att-test-result details{margin:8px 0 0;padding:0;border:0}.att-test-result pre{white-space:pre-wrap;max-height:240px;overflow:auto}
html.theme-dark .att-test-result{background:#16261b;border-color:#2f5a3b}html.theme-dark .att-test-result.ko{background:#2b2116;border-color:#6b4b26}
