/* ==========================================================================
   PFlow, mission 15 : le CRM de Jules dans la charte PFlow Order.
   Charge APRES css/style.css. Meme methode que le Dashboard (css/dashboard.css) : les jetons de
   style.css sont remappes sous body.crm, et les rares couleurs ecrites en dur pour le theme sombre
   sont reprises ici une par une. Aucun module JS n'a besoin de changer pour suivre.

   La hierarchie de lecture, de haut en bas : l'espace (Commerce, Atelier, Agents) en navy plein,
   l'onglet souligne de rose, le titre de page en gras 1,8 rem, puis les chiffres (cartes blanches),
   puis les listes (panneaux blancs). Les libelles de section en capitales espacees, comme la charte.
   ========================================================================== */
@font-face{font-family:'Plus Jakarta Sans';font-weight:400;font-display:swap;src:url(/fonts/pjs-400.woff2) format('woff2');}
@font-face{font-family:'Plus Jakarta Sans';font-weight:600;font-display:swap;src:url(/fonts/pjs-600.woff2) format('woff2');}
@font-face{font-family:'Plus Jakarta Sans';font-weight:700;font-display:swap;src:url(/fonts/pjs-700.woff2) format('woff2');}
@font-face{font-family:'Plus Jakarta Sans';font-weight:800;font-display:swap;src:url(/fonts/pjs-800.woff2) format('woff2');}

body.crm{
  --pf-navy:#101B4D;--pf-navy-2:#1A2660;--pf-pink:#FF4FB5;--pf-pink-txt:#C21D7F;--pf-pink-pale:#FFE6F4;
  --pf-cyan:#74DDFB;--pf-blue:#2A8BFF;--pf-blue-txt:#1766D6;--pf-blue-pale:#E8F2FF;--pf-white:#F8F7FB;
  --pf-coral:#FF6B6B;--pf-coral-txt:#D23B3B;--pf-coral-pale:#FFEBEB;--pf-ok:#13875B;--pf-ok-pale:#E4F6EE;
  --pf-ambre-pale:#FFF4E5;--pf-ambre-bord:#F1D2A8;
  --pf-ombre:0 1px 2px rgba(16,27,77,.06),0 6px 20px rgba(16,27,77,.06);
  --bg:var(--pf-white);--surface:#fff;--surface2:#F3F2F8;--ink:var(--pf-navy);--muted:#5B6390;
  --mint:var(--pf-blue-txt);--green:var(--pf-navy);--wa:#1FA855;--rouge:var(--pf-coral-txt);--amber:#A65505;--rule:#E6E5F0;
  background:var(--pf-white);color:var(--pf-navy);
  font-family:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:.93rem;
}
body.crm a{color:var(--pf-blue-txt);}
body.crm ::selection{background:var(--pf-cyan);color:var(--pf-navy);}

/* ---------- les composants de base ---------- */
body.crm input,body.crm select,body.crm textarea{border-radius:10px;border:1px solid #D9D8E6;background:#fff;color:var(--pf-navy);}
body.crm input:focus,body.crm select:focus,body.crm textarea:focus{border-color:var(--pf-blue);box-shadow:0 0 0 3px rgba(42,139,255,.16);}
body.crm .btn{border-radius:11px;font-weight:800;}
body.crm .btn.p{background:var(--pf-pink);color:var(--pf-navy);}
body.crm .btn.p:hover{opacity:1;background:#FF69C0;}
body.crm .btn.g{border:1.5px solid #D9D8E6;background:#fff;color:var(--pf-navy);}
body.crm .btn.g:hover{border-color:var(--pf-navy);color:var(--pf-navy);}
body.crm .btn.danger{border:1.5px solid #F2C5C5;background:#fff;color:var(--pf-coral-txt);}
body.crm .btn.danger:hover{background:var(--pf-coral-pale);}
body.crm .btn.rouge{background:var(--pf-coral-txt);color:#fff;}
body.crm .btn:focus-visible,body.crm button:focus-visible,body.crm .puce:focus-visible,body.crm a:focus-visible{outline:3px solid var(--pf-blue);outline-offset:2px;}
body.crm .puce{border-radius:999px;border:1.5px solid #D9D8E6;background:#fff;color:var(--pf-navy);}
body.crm .puce.on{background:var(--pf-navy);border-color:var(--pf-navy);color:#fff;}
body.crm .puce.on-mint{border-color:var(--pf-blue-txt);color:var(--pf-blue-txt);background:var(--pf-blue-pale);}
body.crm .badge{border-radius:999px;padding:2px 9px;font-weight:800;background:#fff;}
body.crm .badge.mint{border-color:#B9D6FB;color:var(--pf-blue-txt);background:var(--pf-blue-pale);}
body.crm .badge.retard{border-color:#F2C5C5;color:var(--pf-coral-txt);background:var(--pf-coral-pale);}
body.crm .badge.jour{border-color:var(--pf-ambre-bord);color:#8A4A06;background:var(--pf-ambre-pale);}
body.crm .ambre{color:#8A4A06;}
body.crm label{color:var(--muted);}
body.crm .check input{accent-color:var(--pf-navy);}

/* ---------- connexion ---------- */
body.crm .centre{background:radial-gradient(1100px 560px at 85% -10%,rgba(255,79,181,.12),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(116,221,251,.18),transparent 60%),var(--pf-white);}
body.crm .carte-auth{background:#fff;border:none;border-radius:24px;box-shadow:0 30px 80px rgba(16,27,77,.12);}
body.crm .carte-auth .logo img{display:block;width:160px;height:auto;margin:0 0 6px -4px;}
body.crm .carte-auth .logo small,body.crm header.top .logo small{font-size:.66rem;font-weight:800;letter-spacing:.2em;color:var(--muted);text-transform:uppercase;}
body.crm .carte-auth code{background:var(--surface2);border-color:var(--rule);color:var(--pf-navy);border-radius:6px;}

/* ---------- l'en-tete : l'espace, puis les onglets ---------- */
body.crm header.top{background:rgba(255,255,255,.94);border-bottom:1px solid var(--rule);}
body.crm header.top .ligne{height:64px;gap:16px;}
body.crm header.top .logo{display:flex;align-items:center;gap:8px;}
body.crm header.top .logo img{height:40px;width:auto;display:block;}
body.crm header.top .espaces{background:var(--surface2);border:none;border-radius:13px;padding:4px;gap:3px;}
body.crm header.top .espaces button{background:transparent;border-radius:10px;color:var(--pf-navy);font-weight:800;font-size:.88rem;padding:8px 14px;}
body.crm header.top .espaces button.on{background:var(--pf-navy);color:#fff;box-shadow:0 2px 8px rgba(16,27,77,.2);}
body.crm header.top .espaces .b{background:rgba(255,255,255,.2);color:#fff;border:none;border-radius:999px;padding:1px 7px;}
body.crm header.top .espaces button:not(.on) .b{background:#fff;border:1px solid var(--rule);color:var(--pf-navy);}
body.crm header.top .mrr{background:var(--pf-white);border-radius:10px;padding:6px 12px;color:var(--muted);font-weight:700;}
body.crm header.top .mrr b{color:var(--pf-navy);font-size:1rem;}
body.crm header.top .actions .btn.g{border-color:transparent;background:transparent;color:var(--muted);}
body.crm header.top .actions .btn.g:hover{color:var(--pf-navy);background:var(--surface2);}
body.crm header.top .actions #btn-nouveau{background:var(--pf-pink);color:var(--pf-navy);}
body.crm nav.tabs{background:#fff;border-bottom:1px solid var(--rule);top:64px;}
body.crm nav.tabs button{color:var(--muted);font-weight:700;font-size:.9rem;padding:14px 14px 12px;border-bottom:3px solid transparent;}
body.crm nav.tabs button:hover{color:var(--pf-navy);}
body.crm nav.tabs button.on{color:var(--pf-navy);border-bottom-color:var(--pf-pink);}
body.crm nav.tabs button .b{background:var(--surface2);border:none;color:var(--pf-navy);border-radius:999px;font-weight:800;padding:1px 7px;}
body.crm nav.tabs button.on .b{background:var(--pf-navy);color:#fff;}
body.crm nav.tabs button .b.sv-b-rouge{background:var(--pf-coral-pale);color:var(--pf-coral-txt);}
body.crm .sv-pilule{background:var(--pf-coral-pale);border:1px solid #F2C5C5;color:var(--pf-coral-txt);border-radius:999px;}
body.crm .sv-pilule:hover{border-color:var(--pf-coral-txt);}

/* ---------- la page : titre, chiffres, listes ---------- */
body.crm main{padding:28px 22px 90px;}
body.crm h2.tt{font-size:1.8rem;font-weight:800;letter-spacing:-.025em;line-height:1.15;}
body.crm p.ss{font-size:.92rem;color:var(--muted);max-width:760px;}
body.crm .cards{gap:14px;}
body.crm .card{background:#fff;border:none;border-radius:18px;box-shadow:var(--pf-ombre);padding:18px 20px;}
body.crm .card .k{color:var(--pf-navy);font-size:1.9rem;letter-spacing:-.03em;}
body.crm .card .l{font-size:.78rem;font-weight:700;color:var(--muted);}
body.crm .card.card-retard{box-shadow:inset 0 0 0 2px var(--pf-ambre-bord),var(--pf-ombre);}
body.crm .card.card-retard .l.r{color:#8A4A06;}
body.crm .panneau{background:#fff;border:none;border-radius:18px;box-shadow:var(--pf-ombre);overflow:hidden;}
body.crm .panneau h3{font-size:.7rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding:15px 18px 13px;}
body.crm .panneau h3 b{color:var(--pf-coral-txt);}
body.crm .ligne-item{padding:12px 18px;}
body.crm .ligne-item:hover{background:var(--pf-white);}
body.crm .ligne-item .quand.retard{color:var(--pf-coral-txt);}
body.crm .titre-groupe{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
body.crm .titre-groupe span{color:var(--pf-navy);}

/* pipeline */
body.crm .col{background:#EFEEF6;border:none;border-radius:18px;}
body.crm .col h4{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:none;padding:14px 14px 6px;}
body.crm .col h4 span{color:var(--pf-navy);background:#fff;border-radius:999px;padding:0 8px;letter-spacing:0;}
body.crm .col.col-sortie{background:transparent;border:2px dashed #C9D9C9;}
body.crm .col.survol{outline:2px dashed var(--pf-blue);}
body.crm .rcard{background:#fff;border:1px solid transparent;border-radius:12px;box-shadow:0 1px 3px rgba(16,27,77,.08);transition:box-shadow .15s,transform .15s;}
body.crm .rcard:hover{border-color:transparent;box-shadow:0 6px 18px rgba(16,27,77,.14);transform:translateY(-1px);}
body.crm .quickadd,body.crm .form-rdv{background:#fff;border:none;border-radius:18px;box-shadow:var(--pf-ombre);}
body.crm .sources,body.crm .tpl,body.crm .mrr-fiche,body.crm .fiche-etats > div{border-radius:14px;}
body.crm .jourbloc h3{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
body.crm .jourbloc h3.rouge{color:var(--pf-coral-txt);}
body.crm .chips a{border-radius:999px;background:#fff;}

/* la fiche resto (tiroir) */
body.crm .voile{background:rgba(16,27,77,.42);backdrop-filter:blur(3px);}
body.crm .fiche{background:var(--pf-white);border-left:none;box-shadow:-24px 0 60px rgba(16,27,77,.2);border-radius:22px 0 0 22px;max-width:600px;}
body.crm .fiche .fh h2{font-size:1.5rem;}
body.crm .fiche .fh .fermer{border-radius:10px;background:#fff;color:var(--pf-navy);border-color:#D9D8E6;}
body.crm .fiche h3.sec{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
body.crm .mrr-fiche b{color:var(--pf-navy);}

/* dialogues, message */
body.crm .pf-dlg-voile,body.crm .ci-voile{background:rgba(16,27,77,.42);backdrop-filter:blur(3px);}
body.crm .pf-dlg{border:none;border-radius:22px;box-shadow:0 30px 80px rgba(16,27,77,.28);}
body.crm #toast{background:var(--pf-navy);border:none;color:#fff;border-radius:14px;box-shadow:0 14px 40px rgba(16,27,77,.3);}
body.crm #toast.err{background:var(--pf-coral-txt);}

/* ---------- les arrondis de la charte sur les blocs des modules ---------- */
body.crm .sources,body.crm .tpl,body.crm .pf-rec,body.crm .st-cadre,body.crm .st-msg,body.crm .ag-infos,body.crm .ag-champ,body.crm .ag-texte,
body.crm .hz-service,body.crm .hz-ex,body.crm .hz-ex-form,body.crm .sv-svc,body.crm .dc-quota,body.crm .dc-score,body.crm .dc-calcul,body.crm .dc-mini,
body.crm .ax-agent,body.crm .ax-bascule,body.crm .ax-p,body.crm .ax-script,body.crm .fa-mods,body.crm .fa-abo,body.crm .in-bloc,body.crm .in-mission,
body.crm .in-at-i,body.crm .pf-ed-taille,body.crm .ci,body.crm .ci-g,body.crm .kt-cadre,body.crm .kt-t,body.crm .pf-prod,body.crm .dc-renvoi,
body.crm .ag-alerte,body.crm .in-parallele,body.crm .in-sug,body.crm .in-alerte,body.crm .dc-alerte,body.crm .ci-alerte,body.crm .kt-err{border-radius:14px;}
body.crm .pf-seg{border-radius:11px;overflow:hidden;border-color:#D9D8E6;}
body.crm .pf-seg button{background:#fff;}
body.crm .pf-seg button.on{background:var(--pf-navy);color:#fff;}
body.crm .pf-seg button.on.off{background:var(--pf-coral);color:var(--pf-navy);}

/* ---------- les couleurs ecrites en dur pour le theme sombre, reprises une par une ---------- */
body.crm .pf-glisse-place{background:var(--pf-blue-pale);border-color:var(--pf-blue);}
body.crm .pf-glisse-fantome{box-shadow:0 18px 40px rgba(16,27,77,.25);}
body.crm .pf-ed{background:var(--pf-white);box-shadow:-20px 0 60px rgba(16,27,77,.18);border-left:none;}
body.crm .pf-ed-photo{border:1.5px dashed #C9C8DA;border-radius:14px;}
body.crm .pf-ap-carte{border:1px solid var(--rule);color:var(--pf-navy);}
body.crm .pf-ap-carte .d,body.crm .pf-ap-carte .s{color:var(--muted);}
body.crm .pf-ap-carte .p{color:var(--pf-navy);}
body.crm .pf-ap-carte i{background:var(--pf-pink);color:var(--pf-navy);}
body.crm .pf-rec-scene{background:repeating-conic-gradient(#ECEBF3 0% 25%,#F8F7FB 0% 50%) 50%/20px 20px;}
body.crm .pf-replie{border:1.5px dashed #D9D8E6;border-radius:14px;}
body.crm .pf-cat-bascule .compte{background:var(--pf-blue-pale);border-color:transparent;color:var(--pf-blue-txt);}
body.crm .pf-cat-bascule .compte.avec-rupture{background:var(--pf-ambre-pale);color:#8A4A06;border-color:transparent;}
body.crm .pf-prod-prix{color:var(--pf-navy);}
body.crm .st-etape .p.ko,body.crm .sv-rouge{color:var(--pf-coral-txt);}
body.crm .st-etape .p.ko{background:var(--pf-coral-txt);color:#fff;}
body.crm .st-cadre.ambre,body.crm .hz-etat.hz-attention,body.crm .dc-alerte,body.crm .ci-alerte,body.crm .sv-svc.sv-attention{border-color:var(--pf-ambre-bord);background:var(--pf-ambre-pale);color:#8A4A06;}
body.crm .st-cadre.rouge,body.crm .ag-champ.bloque,body.crm .in-alerte,body.crm .kt-err{border-color:#F2C5C5;}
body.crm .st-invalide{border-color:var(--pf-coral-txt) !important;}
body.crm .ag-alerte,body.crm .sv-svc.sv-ko{border-color:#F2C5C5;background:var(--pf-coral-pale);}
body.crm .sv-ko .sv-svc-e{color:var(--pf-coral-txt);}
body.crm .ag-texte mark{background:var(--pf-pink-pale);color:var(--pf-pink-txt);}
body.crm .sv-r-rouge{box-shadow:inset 3px 0 0 var(--pf-coral);}
body.crm .dc-n{background:var(--surface2);color:var(--pf-navy);}
body.crm .dc-carte .leaflet-control-attribution{background:rgba(255,255,255,.85);}
body.crm .dc-score.chaud,body.crm .dc-mini.chaud,body.crm .ax-bascule.on,body.crm .in-mission.fait,body.crm .in-go,body.crm .in-sug,body.crm .in-parallele.en-cours,body.crm .ci-a{border-color:#BFE3D0;}
body.crm .dc-score.tiede,body.crm .dc-mini.tiede,body.crm .ci-a.prob{border-color:var(--pf-ambre-bord);}
body.crm .ax-agent:hover{border-color:#C9C8DA;}
body.crm .fa-mod.on,body.crm .in-sug,body.crm .in-parallele.en-cours,body.crm .ci-a{background:var(--pf-ok-pale);}
body.crm .in-parallele{border-color:var(--pf-ambre-bord);background:var(--pf-ambre-pale);}
body.crm .in-go{background:linear-gradient(180deg,var(--pf-ok-pale),#fff);}
body.crm .in-pied{background:rgba(255,255,255,.97);}
body.crm .in-live{background:#C9C8DA;}
body.crm .in-live.on{background:var(--pf-ok);box-shadow:0 0 0 3px rgba(19,135,91,.2);}
body.crm .in-note{background:var(--pf-ambre-pale);}
body.crm .in-ck-case span{border-color:#C9C8DA;border-radius:6px;}
body.crm .in-e i.bl{border-color:#F2C5C5;}
body.crm .in-rep-i.attention > i{color:#fff;}
body.crm .in-apercu-cadre.tel{border-color:var(--pf-navy);}
body.crm .ci-a{color:var(--pf-ok);}
body.crm .ci-a.prob{background:none;color:#8A4A06;}

/* ---------- mission 15 : le tunnel de commande (fiche resto et vue Conversion) ---------- */
.tn{background:#fff;border-radius:18px;box-shadow:var(--pf-ombre);padding:16px 18px;}
.tn-tete{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.tn-tete .pf-lb,.tn-lb{font-size:.7rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.tn-tete .pf-seg{margin-left:auto;}
.tn-etapes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;align-items:end;}
.tn-e{display:flex;flex-direction:column;gap:6px;min-width:0;}
.tn-e .b{position:relative;height:84px;border-radius:10px;background:var(--surface2);overflow:hidden;display:flex;align-items:flex-end;}
.tn-e .b i{display:block;width:100%;background:var(--pf-blue);border-radius:10px 10px 0 0;transform-origin:bottom;animation:tn-monte .5s cubic-bezier(.2,.9,.3,1) both;}
.tn-e.fin .b i{background:var(--pf-pink);}
.tn-e b{font-size:1.35rem;font-weight:800;letter-spacing:-.02em;line-height:1;}
.tn-e span{font-size:.74rem;font-weight:700;color:var(--muted);line-height:1.25;}
.tn-e em{font-style:normal;font-size:.72rem;font-weight:800;color:var(--pf-coral-txt);}
@keyframes tn-monte{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.tn-pied{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:.84rem;color:var(--muted);}
.tn-pied b{color:var(--pf-navy);}
.tn-vide{color:var(--muted);font-size:.88rem;padding:6px 0;}
.tn-table{width:100%;border-collapse:collapse;font-size:.88rem;}
.tn-table th{font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:right;padding:10px 12px;border-bottom:1px solid var(--rule);}
.tn-table th:first-child,.tn-table td:first-child{text-align:left;}
.tn-table td{padding:12px;border-bottom:1px solid var(--rule);text-align:right;font-variant-numeric:tabular-nums;}
.tn-table tr:hover td{background:var(--pf-white);cursor:pointer;}
.tn-table td b{font-weight:800;}
.tn-taux{display:inline-block;min-width:52px;border-radius:999px;padding:2px 8px;font-weight:800;text-align:center;background:var(--surface2);}
.tn-taux.bon{background:var(--pf-ok-pale);color:var(--pf-ok);}
.tn-taux.bas{background:var(--pf-coral-pale);color:var(--pf-coral-txt);}
@media (prefers-reduced-motion:reduce){ .tn-e .b i{animation:none;} }

/* Atelier > Aujourd'hui : section "Mes restos en ligne" */
body.crm .enligne-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:10px;margin-top:4px;}
body.crm .enligne-c{border:1px solid var(--rule);border-left:4px solid var(--acc,var(--pf-blue));border-radius:14px;background:var(--surface);box-shadow:var(--pf-ombre);padding:12px 14px;display:flex;flex-direction:column;gap:7px;}
body.crm .enligne-h{display:flex;align-items:center;justify-content:space-between;gap:8px;}
body.crm .enligne-h>b{font-size:1rem;color:var(--pf-navy);line-height:1.2;}
body.crm .enligne-b{display:flex;gap:4px;flex-shrink:0;}
body.crm .enligne-n{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:.9rem;color:var(--muted);}
body.crm .enligne-n .nb{font-size:1.4rem;font-weight:800;color:var(--pf-navy);font-variant-numeric:tabular-nums;}
body.crm .enligne-n .ca{margin-left:auto;font-weight:800;color:var(--pf-blue-txt);font-variant-numeric:tabular-nums;}
body.crm .enligne-s{display:flex;align-items:center;gap:8px;min-height:20px;font-size:.8rem;color:var(--muted);}
body.crm .enligne-a{display:flex;gap:6px;margin-top:2px;}
body.crm .enligne-a .btn.mini{flex:1;text-align:center;}

/* Facturation > Reglages et tarifs : ajouter une option au catalogue */
body.crm .fa-ajout{margin-top:14px;border-top:1px solid var(--rule);padding-top:12px;}
body.crm .fa-ajout h4{font-size:.95rem;margin:0 0 8px;color:var(--pf-navy);}
body.crm .fa-ajout-g{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
body.crm .fa-ajout-g input{flex:1 1 150px;min-width:120px;padding:8px 10px;}
body.crm .fa-ajout-g input[data-opt="prix_mensuel"],body.crm .fa-ajout-g input[data-opt="prix_unique"]{flex:0 0 110px;}
body.crm .fa-ajout-g select{padding:8px 10px;}
