/*!*************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./app/globals.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************/
:root{
  --bg-deep:#1e4b42;
  --bg-deep2:#26564d;
  --bg-deep3:#2e6357;
  --paper:#ffffff;
  --paper-dim:#d7e6e1;
  --rust:#8cb537;
  --rust-dim:#6fa82e;
  --gold:#a9c94a;
  --leaf:#a8d66b;
  --ink:#173f38;
  --cream:#ffffff;
  --highlight:#c6e24c;
  --line: rgba(255,255,255,0.14);
  --max: 1180px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg-deep);
  color:var(--cream);
  font-family:'Work Sans', sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
button{font:inherit;}
input, select, textarea{font:inherit;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
h1,h2,h3,h4{
  font-family:'Work Sans', sans-serif;
  font-weight:800;
  line-height:1.1;
}
.eyebrow{
  font-family:'Work Sans', sans-serif;
  font-weight:600;
  font-size:13px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--gold);
  display:flex; align-items:center; gap:10px;
}
.eyebrow::before{
  content:"";
  width:22px; height:2px; background:var(--gold); display:inline-block;
}
.btn{
  -moz-appearance:none;
       appearance:none; -webkit-appearance:none;
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Work Sans', sans-serif;
  font-weight:600;
  font-size:14.5px;
  padding:14px 26px; border-radius:999px;
  background:transparent;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, background .2s ease, border-color .2s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn:disabled{opacity:0.5; cursor:not-allowed; transform:none;}
.btn-rust{background:var(--rust); color:var(--ink); font-weight:700;}
.btn-rust:hover{background:var(--gold);}
.btn-ghost{border-color:rgba(255,255,255,0.35); color:var(--cream);}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold);}
.on-paper .btn-ghost{border-color:rgba(23,63,56,0.35); color:var(--ink);}
.on-paper .btn-ghost:hover{border-color:var(--rust-dim); color:var(--rust-dim);}
.btn-dark{background:var(--ink); color:var(--paper);}
.btn-dark:hover{background:#0e2a25;}

.icon-badge{
  width:56px; height:56px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  flex:none;
}
.icon-badge svg{width:28px; height:28px;}
.icon-badge.emoji{font-size:26px; line-height:1;}

/* ---------- NAV ---------- */
header{
  position:-webkit-sticky;
  position:sticky; top:0; z-index:60;
  background:rgba(30,75,66,0.94);
  -webkit-backdrop-filter:blur(8px);
          backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
nav{
  position:relative;
  max-width:var(--max); margin:0 auto; padding:16px 32px;
  display:flex; align-items:center; justify-content:space-between;
}
.hamburger{
  display:flex; flex-direction:column; justify-content:center; gap:5px;
  width:36px; height:36px; padding:0; background:none; border:none; cursor:pointer;
}
.hamburger span{width:100%; height:2px; background:var(--cream); border-radius:2px;}
@media(min-width:900px){.hamburger{display:none;}}
.logo{
  font-family:'Work Sans', sans-serif;
  font-weight:900; font-size:24px; letter-spacing:0.01em;
  text-transform:uppercase;
  display:flex; align-items:center; gap:8px;
}
.logo .dot{width:9px; height:9px; background:var(--rust); border-radius:50%; display:inline-block;}
.navlinks{display:none; gap:8px; align-items:center;}
@media(min-width:900px){.navlinks{display:flex;}}
.navlinks.mobile-open{
  display:flex; flex-direction:column; align-items:stretch; gap:0;
  position:absolute; top:100%; left:0; right:0;
  background:var(--bg-deep2); border-bottom:1px solid var(--line);
  padding:8px 32px 16px; max-height:calc(100vh - 70px); overflow-y:auto;
}
.navlinks.mobile-open .nav-item{width:100%;}
.navlinks.mobile-open .dropdown-panel{
  position:static; display:flex; box-shadow:none; background:transparent; border:none; padding:0 0 0 16px;
}
.navlinks.mobile-open .nav-item:not(.open) .dropdown-panel{display:none;}
.nav-item{position:relative;}
.nav-item > a, .nav-item > button.nav-toggle{
  font-size:14px; font-weight:500; color:var(--paper-dim);
  padding:10px 14px; border-bottom:1px solid transparent;
  transition:color .2s;
  background:none; border-top:none; border-left:none; border-right:none; cursor:pointer;
  display:flex; align-items:center; gap:5px;
}
.nav-item > a:hover, .nav-item > button.nav-toggle:hover{color:var(--cream);}
.nav-toggle .caret{font-size:10px; opacity:0.7; transition:transform .2s;}
.nav-item.open .nav-toggle .caret{transform:rotate(180deg);}
.dropdown-panel{
  position:absolute; top:calc(100% + 4px); left:0;
  background:var(--bg-deep2); border:1px solid var(--line); border-radius:6px;
  padding:8px; min-width:210px; display:none; flex-direction:column; gap:2px;
  box-shadow:0 16px 34px rgba(20,26,18,0.4);
  z-index:70;
}
.nav-item.open .dropdown-panel{display:flex;}
.dropdown-panel a{
  padding:10px 12px; border-radius:4px; font-size:14px; color:var(--paper-dim);
}
.dropdown-panel a:hover{background:var(--bg-deep3); color:var(--cream);}
.dropdown-panel a.logout-link{
  border-top:1px solid var(--line); margin-top:4px; padding-top:12px;
  color:var(--paper-dim); font-weight:600;
}
.dropdown-panel a.logout-link:hover{background:transparent; color:#e07a5f;}
.id-wrap{position:relative;}
.id-wrap .dropdown-panel{left:auto; right:0;}
.id-wrap .dropdown-panel a{display:flex; align-items:center; gap:10px;}
.id-wrap .dropdown-panel .mini-ic{width:20px; height:20px; flex:none;}
.navcta-group{display:flex; align-items:center; gap:10px;}

/* ---------- HERO ---------- */
.hero{
  padding:76px 0 60px;
  background:
    radial-gradient(1100px 480px at 82% -10%, rgba(169,201,74,0.14), transparent 60%),
    radial-gradient(700px 400px at 10% 110%, rgba(140,181,55,0.15), transparent 60%),
    var(--bg-deep);
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.hero-grid{
  display:grid; grid-template-columns:1fr; grid-gap:48px; gap:48px; align-items:center;
}
@media(min-width:960px){.hero-grid{grid-template-columns:0.95fr 1.05fr;}}
.hero h1{
  font-size:clamp(38px, 5.6vw, 60px);
  margin:14px 0 20px;
  color:var(--cream);
}
.hero h1 span{color:var(--gold);}
.hero p.lead{
  font-size:18px; color:var(--paper-dim); max-width:520px; margin-bottom:30px;
}
.persona-row{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:28px;}
.persona-btn{
  flex:1 1 150px;
  background:var(--bg-deep2);
  border:1px solid var(--line);
  border-radius:6px;
  padding:16px;
  display:flex; align-items:center; gap:12px;
  transition:border-color .2s, background .2s, transform .15s;
}
.persona-btn:hover{border-color:var(--gold); background:var(--bg-deep3); transform:translateY(-3px);}
.persona-btn .icon-badge{width:42px; height:42px; background:var(--bg-deep3);}
.persona-btn .icon-badge svg{width:22px; height:22px;}
.persona-btn .pb-name{font-family:'Work Sans'; font-weight:700; font-size:17px; text-transform:none; color:var(--cream);}
.persona-btn .pb-sub{font-family:'Work Sans'; font-size:10.5px; color:var(--paper-dim); text-transform:uppercase; letter-spacing:0.05em;}

.store-row{display:flex; flex-wrap:wrap; gap:12px;}
.store-badge{
  display:flex; align-items:center; gap:10px;
  background:var(--ink); border:1px solid rgba(255,255,255,0.15);
  padding:10px 16px; border-radius:8px;
  transition:border-color .2s, transform .15s;
}
.store-badge:hover{border-color:var(--gold); transform:translateY(-2px);}
.store-badge svg{width:22px; height:22px; flex:none;}
.store-badge .st-txt{display:flex; flex-direction:column; line-height:1.2;}
.store-badge .st-small{font-size:9.5px; color:var(--paper-dim); font-family:'Work Sans'; text-transform:uppercase; letter-spacing:0.04em;}
.store-badge .st-big{font-family:'Work Sans'; font-size:16px; font-weight:700; color:var(--paper);}

/* Hero — soulignement d'accent, sous le texte (pas de chevauchement des lettres) */
.hero-highlight{
  text-decoration:underline;
  -webkit-text-decoration-color:var(--highlight);
          text-decoration-color:var(--highlight);
  text-decoration-thickness:6px;
  text-underline-offset:8px;
}

/* Hero — mockups de téléphone */
.phone-stack{position:relative; display:flex; justify-content:center; align-items:center; min-height:420px;}
.phone-mockup{
  width:210px; height:430px; border-radius:34px; background:var(--ink);
  padding:8px; box-shadow:0 28px 54px rgba(0,0,0,0.35); position:absolute;
}
.phone-mockup.tilt-left{transform:rotate(-9deg); left:calc(50% - 150px); top:10px;}
.phone-mockup.tilt-right{transform:rotate(7deg); left:calc(50% - 30px); top:60px;}
.phone-screen{
  background:var(--paper); height:100%; width:100%; border-radius:26px;
  padding:18px 14px; display:flex; flex-direction:column; gap:10px; overflow:hidden;
}
.phone-screen .ps-header{font-weight:700; color:var(--ink); font-size:13px; margin-bottom:4px;}
.phone-screen .ps-card{
  background:#f3f8f6; border:1px solid rgba(23,63,56,0.1); border-radius:10px;
  padding:10px 12px; display:flex; align-items:center; gap:10px; font-size:12px; color:var(--ink);
}
.phone-screen .ps-card .ps-emoji{font-size:18px;}
.phone-screen .ps-card .ps-price{margin-left:auto; color:var(--rust-dim); font-weight:700; font-size:11px;}
.manifeste{
  background:
    radial-gradient(900px 360px at 50% -20%, rgba(169,201,74,0.16), transparent 65%),
    radial-gradient(700px 320px at 90% 120%, rgba(140,181,55,0.12), transparent 60%),
    var(--bg-deep3);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.hero-visual{display:flex; align-items:center; gap:18px; flex-wrap:wrap; justify-content:center;}
.qr-badge-col{display:flex; flex-direction:column; align-items:center; gap:10px;}
.qr-badge-col img{border-radius:10px; border:1px solid var(--line); background:#fff;}

/* Hero — parcours en 3 étapes */
.app-steps{position:relative; padding-left:56px; display:flex; flex-direction:column; gap:26px;}
.app-steps::before{
  content:""; position:absolute; left:19px; top:6px; bottom:6px; width:2px;
  background-image:repeating-linear-gradient(to bottom, rgba(255,255,255,0.4) 0 6px, transparent 6px 13px);
}
.app-step{position:relative;}
.app-step .step-num{
  position:absolute; left:-56px; top:0; width:40px; height:40px; border-radius:50%;
  background:var(--rust); color:var(--ink); display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:16px; flex:none;
}
.app-step h3{font-size:19px; color:var(--cream); margin-bottom:4px; font-weight:700; text-transform:none;}
.app-step p{font-size:14px; color:var(--paper-dim);}

.badge-strip{
  border-bottom:1px solid var(--line);
  background:var(--bg-deep2);
}
.badge-strip .wrap{display:grid; grid-template-columns:repeat(4,1fr); grid-gap:0; gap:0; padding:0;}
.badge-item{
  padding:18px 20px;
  border-right:1px solid var(--line);
  font-family:'Work Sans', sans-serif; font-size:12.5px; letter-spacing:0.03em;
  color:var(--paper-dim);
  display:flex; align-items:center; gap:10px;
}
.badge-item:last-child{border-right:none;}
.badge-item .bi-mark{color:var(--gold); font-weight:600; flex:none;}
/* Tablette : 2 colonnes — bordure droite seulement sur la 1re colonne, basse pour séparer les 2 rangées */
@media(max-width:860px){
  .badge-strip .wrap{grid-template-columns:repeat(2,1fr);}
  .badge-item{border-right:1px solid var(--line); border-bottom:1px solid var(--line);}
  .badge-item:nth-child(2n){border-right:none;}
  .badge-item:nth-child(n+3){border-bottom:none;}
}
/* Téléphone : 1 colonne empilée — plus de bordure droite, juste un séparateur horizontal entre chaque ligne */
@media(max-width:520px){
  .badge-strip .wrap{grid-template-columns:1fr; padding:0 32px;}
  .badge-item, .badge-item:nth-child(n+3){border-right:none; border-bottom:1px solid var(--line); padding:16px 0;}
  .badge-item:last-child{border-bottom:none;}
  .badge-item{justify-content:center; text-align:center;}
}

/* ---------- SECTIONS GENERAL ---------- */
section{padding:88px 0;}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head h2{font-size:clamp(30px,4vw,42px); color:var(--cream); margin-top:12px;}
.section-head p{color:var(--paper-dim); font-size:16px; margin-top:14px;}
.on-paper{background:var(--paper); color:var(--ink);}
.on-paper .eyebrow{color:var(--rust-dim);}
.on-paper .eyebrow::before{background:var(--rust-dim);}
.on-paper .section-head h2{color:var(--ink);}
.on-paper .section-head p{color:#4a615c;}

/* Steps */
.steps{display:grid; grid-template-columns:repeat(4,1fr); grid-gap:1px; gap:1px; background:var(--line); border:1px solid var(--line);}
@media(max-width:860px){.steps{grid-template-columns:1fr 1fr;}}
.step{background:var(--bg-deep); padding:30px 24px; position:relative;}
.step .num{
  font-family:'Work Sans'; font-size:13px; color:var(--rust);
  border:1px solid var(--rust-dim); width:32px; height:32px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin-bottom:20px;
}
.step h3{font-size:21px; color:var(--cream); text-transform:none; font-weight:700; margin-bottom:8px;}
.step p{font-size:14px; color:var(--paper-dim);}

/* Actors tabs */
.tabs-nav{display:flex; gap:8px; margin-bottom:0; flex-wrap:wrap;}
.tab-btn{
  display:flex; align-items:center; gap:9px;
  font-family:'Work Sans'; font-size:12.5px; text-transform:uppercase; letter-spacing:0.04em;
  padding:11px 18px; border:1px solid var(--line); background:transparent; color:var(--paper-dim);
  cursor:pointer; border-bottom:none; border-radius:4px 4px 0 0;
}
.tab-btn .icon-badge{width:26px; height:26px; background:transparent;}
.tab-btn .icon-badge svg{width:16px; height:16px;}
.tab-btn.active{background:var(--bg-deep2); color:var(--gold); border-color:var(--line);}
.tab-panel{display:none; border:1px solid var(--line); background:var(--bg-deep2); padding:40px; border-radius:0 4px 4px 4px;}
.tab-panel.active{display:grid; grid-template-columns:1fr 1fr; grid-gap:40px; gap:40px;}
@media(max-width:800px){.tab-panel.active{grid-template-columns:1fr;}}
.role-head{display:flex; align-items:center; gap:14px; margin-bottom:16px;}
.role-head .icon-badge{background:var(--bg-deep3);}
.tab-panel h3{font-size:26px; color:var(--cream); text-transform:none;}
.tab-panel .role-tag{font-family:'Work Sans'; font-size:11px; color:var(--gold); letter-spacing:0.08em; text-transform:uppercase;}
.tab-panel p.desc{color:var(--paper-dim); margin:0 0 22px; font-size:15px;}
.benefit-list{list-style:none; display:flex; flex-direction:column; gap:12px;}
.benefit-list li{display:flex; gap:12px; font-size:14.5px; color:var(--paper-dim); align-items:flex-start;}
.benefit-list li .bullet{color:var(--gold); font-family:'Work Sans'; font-size:13px; flex:none; margin-top:2px;}
.tab-visual{
  background:var(--bg-deep3); border:1px solid var(--line); border-radius:4px;
  padding:24px; display:flex; flex-direction:column; gap:14px; justify-content:center;
}
.tab-visual .vt-label{font-family:'Work Sans'; font-size:10.5px; color:var(--gold); text-transform:uppercase; letter-spacing:0.08em;}
.tab-visual .vt-big{font-family:'Work Sans'; font-weight:800; font-size:22px; color:var(--cream); text-transform:none;}
.tab-visual .vt-sub{font-size:13px; color:var(--paper-dim);}

/* Accessibility */
.access-grid{display:grid; grid-template-columns:repeat(3,1fr); grid-gap:28px; gap:28px;}
@media(max-width:860px){.access-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.access-grid{gap:14px;}}
.access-card{
  border:1px solid rgba(23,63,56,0.1);
  background:#ffffff;
  padding:28px; border-radius:14px;
  box-shadow:0 4px 16px rgba(23,63,56,0.06);
}
@media(max-width:520px){
  .access-card{padding:16px; border-radius:12px;}
  .access-card .icon-badge{width:40px; height:40px; margin-bottom:10px;}
  .access-card .icon-badge svg{width:20px; height:20px;}
  .access-card h3{font-size:15px; margin-bottom:4px;}
  .access-card p{font-size:12.5px;}
}
.access-card .icon-badge{background:var(--rust); color:var(--ink); margin-bottom:16px;}
.access-card--center{text-align:center;}
.access-card--center .icon-badge{margin-left:auto; margin-right:auto;}
.access-card h3{font-size:19px; text-transform:none; font-weight:700; color:var(--ink); margin-bottom:8px;}
.access-card p{font-size:14px; color:#4a615c;}
.access-card .solution-link{
  display:inline-flex; align-items:center; gap:6px; margin-top:16px;
  font-weight:600; font-size:14px; color:var(--bg-deep);
  text-decoration:underline; text-underline-offset:3px;
}

/* Trust */
.trust-grid{display:grid; grid-template-columns:repeat(4,1fr); grid-gap:1px; gap:1px; background:var(--line); border:1px solid var(--line);}
@media(max-width:860px){.trust-grid{grid-template-columns:1fr 1fr;}}
.trust-card{background:var(--bg-deep); padding:28px 22px;}
.trust-card h3{font-size:18px; text-transform:none; font-weight:700; color:var(--cream); margin-bottom:8px;}
.trust-card p{font-size:13.5px; color:var(--paper-dim);}
.legal-note{
  margin-top:40px; padding:22px 26px; border-left:3px solid var(--gold);
  background:var(--bg-deep2); font-size:14px; color:var(--paper-dim); max-width:760px; border-radius:0 6px 6px 0;
}
.legal-note strong{color:var(--gold); font-weight:600;}

/* Pages légales (mentions, CGU, cookies, confidentialité) */
.legal-content{max-width:760px; margin:0 auto; padding:60px 0 100px;}
.legal-content h1{font-size:30px; text-transform:none; color:var(--ink); margin-bottom:8px;}
.legal-content .legal-maj{font-family:'Work Sans'; font-size:12.5px; color:#4a615c; margin-bottom:36px;}
.legal-content h2{font-size:18px; text-transform:none; font-weight:700; color:var(--ink); margin:30px 0 10px;}
.legal-content p{font-size:14.5px; line-height:1.7; color:#2f4842; margin-bottom:12px;}
.legal-content ul{padding-left:20px; margin-bottom:12px;}
.legal-content li{font-size:14.5px; line-height:1.7; color:#2f4842; margin-bottom:6px;}
.legal-content .placeholder{color:var(--rust); font-style:italic;}
.foot-legal{
  display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:14px; padding-top:14px;
  border-top:1px solid rgba(246,240,227,0.1); font-family:'Work Sans'; font-size:12px;
}
.foot-legal a{color:var(--paper-dim);}
.foot-legal a:hover{color:var(--gold);}

/* Offre / abonnement */
.offer-grid{display:grid; grid-template-columns:repeat(3,1fr); grid-gap:24px; gap:24px;}
@media(max-width:900px){.offer-grid{grid-template-columns:1fr;}}
.offer-card{
  background:var(--bg-deep2); border:1px solid var(--line); border-radius:8px;
  padding:30px; display:flex; flex-direction:column; gap:16px;
}
.offer-card.featured{border-color:var(--gold); background:var(--bg-deep3);}
.offer-card .of-tag{font-family:'Work Sans'; font-size:11px; color:var(--gold); text-transform:uppercase; letter-spacing:0.08em;}
.offer-card h3{font-size:24px; text-transform:none; color:var(--cream);}
.offer-card .of-price{font-family:'Work Sans'; font-weight:800; font-size:28px; color:var(--gold);}
.offer-card .of-price small{font-family:'Work Sans'; font-size:11px; color:var(--paper-dim); font-weight:400; text-transform:none; display:block; margin-top:2px;}
.offer-card p.of-desc{font-size:14px; color:var(--paper-dim);}
.offer-list{list-style:none; display:flex; flex-direction:column; gap:9px; font-size:13.5px; color:var(--paper-dim);}
.offer-list li{display:flex; gap:9px;}
.offer-list li .bullet{color:var(--leaf); flex:none;}
.offer-note{margin-top:26px; font-size:12.5px; color:var(--paper-dim); font-family:'Work Sans';}

/* Partners */
.partner-row{display:flex; flex-wrap:wrap; gap:10px;}
.partner-chip{
  font-family:'Work Sans'; font-size:12.5px; letter-spacing:0.02em;
  border:1px solid rgba(23,63,56,0.18); padding:10px 16px; border-radius:30px;
  color:#173f38;
}

/* Pilot / piliers illustrés */
.pilier-grid{display:grid; grid-template-columns:repeat(3,1fr); grid-gap:24px; gap:24px; margin-top:8px;}
@media(max-width:900px){.pilier-grid{grid-template-columns:1fr;}}
.pilier-card{
  background:var(--bg-deep2); border:1px solid var(--line); border-radius:14px;
  padding:28px; display:flex; flex-direction:column; gap:8px;
}
.pilier-card .icon-badge{background:var(--gold); color:var(--ink); margin-bottom:8px;}
.pilier-card .pl-tag{font-family:'Work Sans'; font-size:11px; color:var(--gold); text-transform:uppercase; letter-spacing:0.08em;}
.pilier-card h3{font-size:19px; text-transform:none; font-weight:700; color:var(--cream); margin:0;}
.pilier-card p{font-size:14px; color:var(--paper-dim); margin:0;}
@media(max-width:520px){
  .pilier-card{padding:18px; border-radius:12px;}
  .pilier-card .icon-badge{width:44px; height:44px;}
  .pilier-card .icon-badge svg{width:22px; height:22px;}
  .pilier-card h3{font-size:16px;}
  .pilier-card p{font-size:13px;}
}
.pilot-tag{
  display:inline-flex; align-items:center; gap:8px; margin-top:26px;
  font-family:'Work Sans'; font-size:12.5px; color:var(--gold);
  border:1px solid var(--gold); padding:8px 14px; border-radius:30px;
}

/* Footer CTA */
footer{background:var(--ink); padding:70px 0 30px; color:var(--paper);}
.footer-cta{
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:30px;
  padding-bottom:36px;
}
.footer-cta h2{font-size:clamp(28px,4.2vw,42px); max-width:520px; color:var(--paper);}
.rdv-avatar{width:32px; height:32px; font-size:16px; background:rgba(0,0,0,0.12); flex:none;}
.rdv-btn-txt{display:flex; flex-direction:column; line-height:1.25; text-align:left;}
.footer-stores{padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,0.15); margin-bottom:30px; display:flex; flex-wrap:wrap; gap:14px;}
.foot-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; font-size:12.5px; color:rgba(255,255,255,0.55); font-family:'Work Sans';}
.foot-links{display:flex; gap:22px;}

.sav-footer{background:var(--bg-deep2); border-top:1px solid var(--line); padding:16px 0; margin-top:40px;}
.on-paper .sav-footer{background:#f3f8f6; border-color:rgba(23,63,56,0.12);}
.sav-footer-inner{display:flex; flex-wrap:wrap; gap:20px; align-items:center;}
.sav-link{
  background:none; border:none; padding:0; cursor:pointer;
  font-family:'Work Sans'; font-size:13px; font-weight:600; color:var(--gold);
  text-decoration:none; display:inline-flex; align-items:center; gap:6px;
}
.on-paper .sav-link{color:var(--ink);}
.sav-form{display:flex; flex-direction:column; gap:10px; max-width:420px; padding-top:16px;}
.sav-form input, .sav-form textarea{
  font-family:'Work Sans'; font-size:13px; padding:10px 12px; border-radius:8px;
  border:1px solid var(--line); background:transparent; color:inherit; resize:vertical;
}
.on-paper .sav-form input, .on-paper .sav-form textarea{background:#fff; border-color:rgba(23,63,56,0.14);}
.sav-form .btn{align-self:flex-start;}
.sav-envoye{padding-top:14px; font-family:'Work Sans'; font-size:13px; color:var(--leaf);}

/* ---------- APP SCREENS (Espace ouvrier / propriétaire / le bac) ---------- */
.screen-lede{max-width:640px; margin-bottom:40px;}
.app-shell{
  background:var(--bg-deep2); border:1px solid var(--line); border-radius:14px;
  padding:32px; margin-bottom:28px;
}
.on-paper .app-shell{background:#f3f8f6; border-color:rgba(23,63,56,0.14);}
.app-header{display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between; margin-bottom:26px; padding-bottom:26px; border-bottom:1px solid var(--line);}
.on-paper .app-header{border-color:rgba(23,63,56,0.14);}
.app-id{display:flex; align-items:center; gap:16px;}
.app-id .icon-badge{width:54px; height:54px; background:var(--bg-deep3); color:var(--gold);}
.on-paper .app-id .icon-badge{background:#eaf3ef;}
.app-id h3{font-size:22px; text-transform:none; color:var(--cream); margin-bottom:3px;}
.on-paper .app-id h3{color:var(--ink);}
.app-id .app-sub{font-family:'Work Sans'; font-size:11.5px; color:var(--paper-dim); letter-spacing:0.02em;}
.on-paper .app-id .app-sub{color:#4a615c;}

.badge-verifie{
  display:inline-block; margin-left:8px; padding:2px 9px; border-radius:20px;
  background:var(--leaf); color:#173f38; font-family:'Work Sans'; font-size:11px;
  font-weight:600; vertical-align:middle; white-space:nowrap;
}

.toggle-row{display:flex; align-items:center; gap:10px; font-family:'Work Sans'; font-size:12px; color:var(--paper-dim);}
.on-paper .toggle-row{color:#4a615c;}
.toggle{width:44px; height:24px; background:var(--leaf); border-radius:20px; position:relative; flex:none; cursor:pointer; border:none;}
.toggle::after{content:""; position:absolute; top:3px; left:23px; width:18px; height:18px; background:#152219; border-radius:50%; transition:left .2s;}
.toggle.off{background:rgba(255,255,255,0.2);}
.toggle.off::after{left:3px;}
.on-paper .toggle.off{background:rgba(23,63,56,0.18);}

.block-label{font-family:'Work Sans'; font-size:11px; color:var(--gold); text-transform:uppercase; letter-spacing:0.08em; margin:0 0 14px;}
.chip-row{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:28px;}
.chip{
  display:flex; align-items:center; gap:8px;
  background:var(--bg-deep3); border:1px solid var(--line); border-radius:30px;
  padding:8px 14px 8px 10px; font-size:13px; color:var(--paper-dim);
  cursor:pointer; transition:border-color .2s, color .2s;
}
.on-paper .chip{background:#eaf3ef; border-color:rgba(23,63,56,0.12); color:#173f38;}
.chip svg{width:18px; height:18px;}
.chip.active{border-color:var(--gold); color:var(--cream);}
.on-paper .chip.active{color:var(--ink); border-color:var(--rust);}

.filter-row{display:flex; flex-wrap:wrap; gap:9px; margin-bottom:30px;}
.filter-chip{
  font-family:'Work Sans'; font-size:11.5px; text-transform:uppercase; letter-spacing:0.03em;
  display:flex; align-items:center; gap:7px;
  padding:8px 13px; border-radius:6px; border:1px solid var(--line);
  background:var(--bg-deep2); color:var(--paper-dim); cursor:pointer;
}
.filter-chip.active{background:var(--rust); border-color:var(--rust); color:var(--ink); font-weight:700;}

.view-toggle{
  display:inline-flex; gap:2px; padding:3px; border-radius:999px;
  background:var(--bg-deep3); border:1px solid var(--line);
}
.view-toggle button{
  display:flex; align-items:center; gap:6px; border:none; cursor:pointer;
  padding:8px 14px; border-radius:999px; background:transparent; color:var(--paper-dim);
  font-family:'Work Sans'; font-size:12.5px; font-weight:600;
}
.view-toggle button.active{background:var(--rust); color:var(--ink);}
/* Bascule secondaire (ex. Liste/Carte à côté de Travail/Ouvriers) — icône
   seule, plus compacte, pour signaler visuellement qu'elle est
   subordonnée à la bascule principale plutôt que son égale. */
.view-toggle button.icon-only{padding:9px 12px;}
.toggle-icon{width:15px; height:15px;}

.mission-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(270px,1fr)); grid-gap:16px; gap:16px;}
@media(max-width:640px){
  /* 2 colonnes préférées par l'utilisateur même sur mobile (retour du
     2026-09-01) — seuil abaissé à 420px : en dessous, deux colonnes
     deviendraient illisibles (~180px chacune) avec la mini-carte/les
     boutons/badges désormais dans la fiche. */
  .mission-grid{grid-template-columns:repeat(2,1fr); gap:10px;}
}
@media(max-width:420px){
  .mission-grid{grid-template-columns:1fr;}
}
.mission-card{
  background:var(--bg-deep3); border:1px solid var(--line); border-radius:8px; padding:20px;
  display:flex; flex-direction:column; gap:12px;
}
@media(max-width:640px){
  .mission-card{padding:12px; border-radius:10px; gap:8px;}
  .mc-head{gap:8px;}
  .mc-head .icon-badge{width:30px; height:30px;}
  .mc-head .icon-badge.emoji{font-size:16px;}
  .mc-service{font-size:14px;}
  .mc-loc{font-size:10px;}
  .mc-meta{font-size:11px; flex-wrap:wrap;}
  .mc-actions .btn{padding:7px 10px; font-size:10px;}
}
.on-paper .mission-card{background:#eaf3ef; border-color:rgba(23,63,56,0.1);}

/* Vue liste compacte — historique (voir NOTES.md « Optimisation & finitions »),
   où parcourir beaucoup de lignes compte plus que reconnaître visuellement
   un type de mission. Même fiche d'intervention en dessous, juste l'en-tête
   qui change. */
.mission-list-compact{display:flex; flex-direction:column; gap:1px;}
.mission-card-compact{padding:12px 16px; border-radius:0; gap:6px;}
.mission-list-compact .mission-card-compact:first-child{border-radius:8px 8px 0 0;}
.mission-list-compact .mission-card-compact:last-child{border-radius:0 0 8px 8px;}
.mc-row-compact{display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-family:'Work Sans'; font-size:13px;}
.mc-row-service{font-weight:600; color:var(--cream); flex:1 1; min-width:100px;}
.on-paper .mc-row-service{color:var(--ink);}
.mc-row-date{color:var(--paper-dim); font-size:12px;}
.on-paper .mc-row-date{color:#4a615c;}

.mc-head{display:flex; align-items:center; gap:12px;}
.mc-head .icon-badge{width:38px; height:38px; background:var(--bg-deep2); color:var(--gold); flex:none;}
.on-paper .mc-head .icon-badge{background:#eaf3ef;}
.mc-service{font-family:'Work Sans'; font-weight:700; font-size:18px; color:var(--cream); text-transform:none;}
.on-paper .mc-service{color:var(--ink);}
.mc-loc{font-family:'Work Sans'; font-size:11px; color:var(--paper-dim);}
.on-paper .mc-loc{color:#4a615c;}
.mc-meta{display:flex; justify-content:space-between; font-family:'Work Sans'; font-size:12px; color:var(--paper-dim);}
.on-paper .mc-meta{color:#4a615c;}
.mc-meta .price{color:var(--gold); font-weight:600;}
.on-paper .mc-meta .price{color:var(--ink);}
.mc-actions{display:flex; gap:8px; margin-top:4px;}
.mc-actions .btn{padding:9px 14px; font-size:11px;}
.status-badge{
  font-family:'Work Sans'; font-size:10px; text-transform:uppercase; letter-spacing:0.03em;
  padding:4px 9px; border-radius:20px; width:-moz-fit-content; width:fit-content;
}
.status-badge.pending{background:rgba(169,201,74,0.16); color:var(--gold);}
.status-badge.assigned{background:rgba(168,214,107,0.18); color:var(--leaf);}
.status-badge.done{background:rgba(255,255,255,0.12); color:var(--paper-dim);}

.fiche-intervention{margin-top:2px;}
.fiche-toggle{
  background:none; border:none; padding:0; cursor:pointer;
  font-family:'Work Sans'; font-size:11px; font-weight:600; color:var(--gold);
  text-decoration:underline; text-underline-offset:2px;
}
.on-paper .fiche-toggle{color:var(--ink);}
.fiche-detail{
  margin-top:10px; padding:12px 14px; border-radius:8px;
  background:rgba(255,255,255,0.06); border:1px solid var(--line);
  display:flex; flex-direction:column; gap:8px;
}
.on-paper .fiche-detail{background:#f3f8f6; border-color:rgba(23,63,56,0.12);}
.fiche-row{display:flex; flex-direction:column; gap:2px; font-family:'Work Sans'; font-size:12px; color:var(--paper-dim);}
.on-paper .fiche-row{color:#4a615c;}
.paiement-row .btn{align-self:flex-start; margin-top:4px;}
.materiel-lie-row{display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap;}

.modal-backdrop{
  position:fixed; inset:0; background:rgba(23,63,56,0.6); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; z-index:200; padding:20px;
}
.modal-card{
  background:var(--bg-deep2); border:1px solid var(--line); border-radius:14px; padding:28px;
  max-width:380px; width:100%; box-shadow:0 20px 60px rgba(0,0,0,0.4);
  display:flex; flex-direction:column; gap:16px;
}
.on-paper .modal-card{background:#fff; border-color:rgba(23,63,56,0.14);}
.modal-head{display:flex; justify-content:space-between; align-items:center;}
.modal-head h3{margin:0; font-size:18px; text-transform:none; color:var(--cream);}
.on-paper .modal-head h3{color:var(--ink);}
.modal-close{
  background:none; border:none; font-size:16px; cursor:pointer; color:inherit; opacity:0.6;
  padding:4px; line-height:1;
}
.modal-close:hover{opacity:1;}
.modal-actions{display:flex; gap:8px;}
.champ-avec-icone{display:flex; align-items:center; gap:8px;}
.champ-avec-icone input{flex:1 1;}
.fiche-row strong{font-size:10px; text-transform:uppercase; letter-spacing:0.03em; color:var(--cream);}
.on-paper .fiche-row strong{color:var(--ink);}
.fiche-detail .btn{align-self:flex-start; margin-top:4px;}

.preuve-upload{display:flex; gap:8px; flex-wrap:wrap; margin-top:4px;}

.signature-pad{display:flex; flex-direction:column; gap:8px; margin-top:8px;}
.signature-pad canvas{
  background:#fff; border:1px dashed var(--line); border-radius:8px;
  touch-action:none; cursor:crosshair; max-width:100%;
}
.signature-actions{display:flex; gap:8px;}

.voice-recorder{display:flex; flex-direction:column; gap:8px; margin-top:4px;}
.voice-playback{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.voice-playback audio{height:36px; max-width:100%;}
.btn.voice-recording{border-color:var(--rust); color:var(--rust); animation:pulse-rec 1.2s infinite;}
@keyframes pulse-rec{0%,100%{opacity:1;} 50%{opacity:0.55;}}

.preuves-liste{display:flex; flex-wrap:wrap; gap:8px; margin-top:4px;}
.preuve-vignette{
  width:48px; height:48px; border-radius:6px; overflow:hidden; border:1px solid var(--line);
  display:block; flex:none;
}
.preuve-vignette img{width:100%; height:100%; object-fit:cover; display:block;}

.notation-form{display:flex; flex-direction:column; gap:8px; margin-top:6px; padding-top:10px; border-top:1px solid var(--line);}
.on-paper .notation-form{border-color:rgba(23,63,56,0.12);}
.notation-form strong{font-size:10px; text-transform:uppercase; letter-spacing:0.03em; color:var(--cream);}
.on-paper .notation-form strong{color:var(--ink);}
.notation-form textarea{
  font-family:'Work Sans'; font-size:12.5px; padding:8px 10px; border-radius:8px;
  border:1px solid var(--line); background:transparent; color:inherit; resize:vertical;
}
.on-paper .notation-form textarea{background:#fff; border-color:rgba(23,63,56,0.14);}
.etoiles{display:flex; gap:4px; font-size:22px;}
.etoile{cursor:pointer; color:rgba(255,255,255,0.25); transition:color .12s ease;}
.on-paper .etoile{color:rgba(23,63,56,0.2);}
.etoile.pleine{color:var(--gold);}
.on-paper .etoile.pleine{color:var(--ink);}
.fiche-note-privee{font-family:'Work Sans'; font-size:10.5px; color:var(--paper-dim); font-style:italic;}
.on-paper .fiche-note-privee{color:#4a615c;}

.note-etoiles{display:inline-flex; align-items:center; gap:2px; font-size:13px; vertical-align:middle; margin-left:6px;}
.note-etoiles .etoile-lecture{color:rgba(255,255,255,0.25);}
.on-paper .note-etoiles .etoile-lecture{color:rgba(23,63,56,0.2);}
.note-etoiles .etoile-lecture.pleine{color:var(--gold);}
.on-paper .note-etoiles .etoile-lecture.pleine{color:var(--ink);}
.note-etoiles .note-valeur{font-family:'Work Sans'; font-size:11px; color:var(--paper-dim); margin-left:2px;}
.on-paper .note-etoiles .note-valeur{color:#4a615c;}

.publish-cta{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  margin-bottom:30px;
}
.stepper-row{display:flex; flex-wrap:wrap; gap:0; margin-bottom:30px; border:1px solid var(--line); border-radius:8px; overflow:hidden;}
.step-mini{
  flex:1 1; padding:14px 12px; text-align:center; font-family:'Work Sans'; font-size:11px;
  color:var(--paper-dim); border-right:1px solid var(--line); background:var(--bg-deep3);
}
.step-mini:last-child{border-right:none;}
.step-mini.active{color:var(--cream); background:var(--bg-deep2);}
.step-mini .sm-num{display:block; font-size:15px; color:var(--gold); margin-bottom:4px; font-weight:600;}
.service-picker{display:grid; grid-template-columns:repeat(auto-fill, minmax(88px,1fr)); grid-gap:10px; gap:10px; margin-bottom:28px;}
.sp-item{
  background:var(--bg-deep3); border:1.5px solid var(--line); border-radius:8px;
  padding:14px 8px; display:flex; flex-direction:column; align-items:center; gap:8px;
  cursor:pointer; transition:border-color .2s;
}
.sp-item span{font-size:20px;}
.sp-item .sp-label{font-size:11px; color:var(--paper-dim); text-align:center;}
.sp-item.selected{border-color:var(--gold); background:var(--bg-deep3);}
.field-grid{display:grid; grid-template-columns:1fr 1fr; grid-gap:20px; gap:20px; margin-bottom:26px;}
@media(max-width:640px){.field-grid{grid-template-columns:1fr;}}
.field{display:flex; flex-direction:column; gap:8px;}
.field label{font-family:'Work Sans'; font-size:11px; color:var(--gold); text-transform:uppercase; letter-spacing:0.06em;}
.field input, .field select{
  background:var(--bg-deep3); border:1px solid var(--line); border-radius:6px; padding:12px 14px;
  color:var(--cream); font-family:'Work Sans'; font-size:14px;
  width:100%; max-width:100%; min-width:0;
}
.field-grid > *{min-width:0;}
.field input::placeholder{color:rgba(255,255,255,0.4);}
.voice-row{
  display:flex; align-items:center; gap:14px; background:var(--bg-deep3); border:1px solid var(--line);
  border-radius:8px; padding:16px 18px; margin-bottom:26px;
}
.voice-row .icon-badge{width:38px; height:38px; background:var(--rust); color:var(--ink); flex:none;}
.voice-row .icon-badge svg{width:18px; height:18px;}
.voice-row .vr-txt{font-size:13px; color:var(--paper-dim);}
.voice-row .vr-txt strong{color:var(--cream); display:block; font-family:'Work Sans'; font-size:16px; font-weight:700;}
.legend-row{display:flex; flex-wrap:wrap; gap:22px; margin-bottom:32px; font-family:'Work Sans'; font-size:12px; color:var(--paper-dim);}
.legend-row .lg-item{display:flex; align-items:center; gap:8px;}
.lg-dot{width:9px; height:9px; border-radius:50%;}

/* ---------- Formulaires d'inscription / téléphone ---------- */
.auth-shell{max-width:460px; margin:0 auto; padding:70px 32px 100px;}
.auth-card{
  background:var(--bg-deep2); border:1px solid var(--line); border-radius:14px; padding:36px;
  display:flex; flex-direction:column; gap:20px;
}
.auth-card h2{font-size:26px; color:var(--cream); margin-top:8px;}
.auth-card p.lead{font-size:14px; color:var(--paper-dim); margin:0;}
.form-error{
  font-family:'Work Sans'; font-size:12.5px; color:var(--gold);
  background:rgba(169,201,74,0.12); border-radius:6px; padding:10px 14px;
}
.role-choice-grid{display:grid; grid-template-columns:1fr 1fr; grid-gap:16px; gap:16px; max-width:640px; margin:0 auto;}
.role-choice-grid > *{min-width:0;}
@media(max-width:600px){.role-choice-grid{grid-template-columns:1fr;}}
.empty-state{
  font-size:14px; color:var(--paper-dim); padding:30px; text-align:center;
  border:1px dashed var(--line); border-radius:10px;
}
.on-paper .empty-state{color:#4a615c;}

/* ---------- Administration ---------- */
.btn-sm{padding:7px 12px; font-size:10.5px;}
.admin-table-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:8px;}
.admin-table{width:100%; border-collapse:collapse; font-size:13.5px; white-space:nowrap;}
.admin-table th{
  text-align:left; font-family:'Work Sans'; font-size:10.5px; text-transform:uppercase;
  letter-spacing:0.05em; color:var(--gold); padding:12px 14px;
  border-bottom:1px solid var(--line); background:var(--bg-deep2);
}
.admin-table td{padding:11px 14px; border-bottom:1px solid var(--line); color:var(--paper-dim);}
.admin-table tbody tr:hover td{background:var(--bg-deep2);}
.admin-table tbody tr:last-child td{border-bottom:none;}
.admin-toolbar{display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px;}
.admin-add-form{display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin-bottom:22px;}
.admin-add-form .field{min-width:160px;}
.admin-table select{
  background:var(--bg-deep3); border:1px solid var(--line); border-radius:6px; padding:6px 10px;
  color:var(--cream); font-family:'Work Sans'; font-size:11.5px;
}

