:root{--bg:#f5f3ee;--card:#fff;--ink:#1d1d1f;--mut:#6b6b70;--line:#e5e1d8;--accent:#c9a14a;--accent-ink:#1d1d1f;--side:#17181c;--side-ink:#d8d6cf;--ok:#2f7d4f;--warn:#b4531f;--r:12px}
@media (prefers-color-scheme:dark){:root{--bg:#101114;--card:#1a1b20;--ink:#ecebe6;--mut:#9a9aa0;--line:#2b2c33;--side:#0b0c0e}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:inherit}
h1{font-size:1.35rem;margin:0}h2{font-size:1.05rem;margin:0 0 .8rem}h3{font-size:.95rem;margin:1rem 0 .4rem}
.shell{display:flex;min-height:100vh}
.side{width:230px;background:var(--side);color:var(--side-ink);display:flex;flex-direction:column;padding:16px 10px;position:sticky;top:0;height:100vh;transition:width .2s}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;font-weight:700;font-size:1.1rem}
.logo{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font-weight:800;flex:none}
.side nav{display:flex;flex-direction:column;gap:2px;flex:1}
.side nav a,.side .soon,.logout button{display:flex;align-items:center;gap:12px;padding:10px;border-radius:9px;text-decoration:none;color:inherit;background:none;border:0;font:inherit;cursor:pointer;width:100%;text-align:left}
.side nav a:hover,.logout button:hover{background:rgba(255,255,255,.08)}
.side nav a.on{background:var(--accent);color:var(--accent-ink);font-weight:600}
.side i{font-style:normal;width:22px;text-align:center;flex:none}
.soon{opacity:.45}
.collapsed .side{width:64px}.collapsed .lbl{display:none}
.main{flex:1;min-width:0}
.top{display:flex;align-items:center;gap:14px;padding:14px 22px;border-bottom:1px solid var(--line);background:var(--card);position:sticky;top:0;z-index:5}
.top .actions{margin-left:auto;display:flex;gap:8px;align-items:center}
.burger{background:none;border:1px solid var(--line);border-radius:8px;font-size:1.1rem;padding:4px 10px;cursor:pointer;color:inherit}
main{padding:22px;max-width:none}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:18px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid2 .card{margin-bottom:0}.grid2{margin-bottom:18px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;text-decoration:none;display:flex;flex-direction:column}
.kpi b{font-size:1.8rem;line-height:1.1}.kpi span{color:var(--mut);font-size:.85rem}
a.kpi:hover{border-color:var(--accent)}
.btn{display:inline-block;background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);border-radius:9px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn.ghost{background:none;color:var(--ink);border-color:var(--line)}.btn.small{padding:5px 11px;font-size:.85rem}
.btn:hover{filter:brightness(1.06)}
input,select,textarea{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--mut)}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.formgrid .full{grid-column:1/-1}
.inlineform{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}.inlineform input{flex:1;min-width:140px;width:auto}.inlineform select{width:auto;flex:1;min-width:140px}
form.inline{display:inline}.btnrow{display:flex;gap:8px;flex-wrap:wrap}
.filters{display:flex;gap:10px;flex-wrap:wrap}.filters input{flex:2;min-width:200px}.filters select{flex:1;min-width:150px;width:auto}
.tablewrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--mut)}
tbody tr[onclick]{cursor:pointer}tbody tr:hover{background:rgba(var(--acc),.08)}
.row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);text-decoration:none}
.row:last-child{border-bottom:0}
.tag{font-style:normal;font-size:.75rem;padding:2px 9px;border-radius:99px;background:rgba(var(--acc),.18);white-space:nowrap}
.tag.valide,.tag.disponible{background:rgba(47,125,79,.18);color:var(--ok)}.tag.annule,.tag.annulee{background:rgba(180,83,31,.15);color:var(--warn)}
code{background:var(--bg);padding:2px 7px;border-radius:6px;border:1px solid var(--line)}code.big{font-size:1.1rem;font-weight:700}
.muted{color:var(--mut);font-size:.88rem}.note{background:var(--bg);padding:10px;border-radius:8px}
dl{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;margin:0}dt{color:var(--mut)}dd{margin:0}
.flash{padding:10px 14px;border-radius:9px;margin-bottom:14px;background:rgba(47,125,79,.15);color:var(--ok)}
.flash.warn{background:rgba(180,83,31,.14);color:var(--warn)}
body.login{display:grid;place-items:center;min-height:100vh}
.logincard{width:min(380px,92vw);display:flex;flex-direction:column;gap:14px;margin:0}
.logincard .brand{padding:0 0 4px}
@media(max-width:860px){
 .side{position:fixed;left:-250px;z-index:20;width:230px;transition:left .2s}.open .side{left:0}
 .collapsed .side{width:230px}.collapsed .lbl{display:inline}
 .grid2,.formgrid{grid-template-columns:1fr}main{padding:14px}.top{padding:12px 14px}
}
.num{text-align:right;white-space:nowrap}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.lines{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.lrow{display:flex;gap:8px}.lrow input{width:auto;flex:1}.lrow input.q{flex:0 0 80px}.lrow input.p{flex:0 0 150px}
table.amounts td{padding:6px 4px;border-bottom:1px solid var(--line)}table.amounts tr.tot td{font-weight:700;border-top:2px solid var(--ink)}table.amounts tr.sep td{font-weight:600}
@media(max-width:860px){.lrow{flex-wrap:wrap}.lrow input{flex:1 1 100%!important}}
.kanban{display:flex;gap:10px;overflow-x:auto;padding-bottom:12px;align-items:flex-start}
.kcol{flex:1 1 0;min-width:136px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px}
.kcol.over{border-color:var(--accent)}.kcol.dim{opacity:.75;flex:.7 1 0;min-width:96px}
.kanban{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.kcol h2{font-size:.82rem;margin:0 0 10px;display:flex;justify-content:space-between}.count{color:var(--mut);font-weight:400}
.kdrop{display:flex;flex-direction:column;gap:10px;min-height:60px}
.kcard{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px;cursor:grab}
.kcard.dragging{opacity:.4}
.ktitle{font-weight:600;text-decoration:none;display:block;margin-bottom:4px}.kmeta{font-size:.8rem;color:var(--mut);margin-top:4px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.kbar{flex:1 1 100%;height:5px;border-radius:99px;background:var(--line);overflow:hidden}.kbar i{display:block;height:100%;background:var(--accent)}
.karrows{display:flex;justify-content:space-between;margin-top:8px}.karrows form{margin:0}
.taskbtn{background:none;border:0;color:inherit;font:inherit;cursor:pointer;text-align:left;padding:0}.taskbtn.done{text-decoration:line-through;color:var(--mut)}
label.check{flex-direction:row;align-items:center;gap:8px}

@media(max-width:860px){.kcol{flex:0 0 240px}}

/* ---- Planning (étape 5) ---- */
.calnav{display:flex;align-items:center;gap:12px;margin-bottom:12px}.calnav h2{margin:0;flex:1;text-align:center}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.calh{text-align:center;color:var(--mut);font-size:.8rem;padding:4px 0}
.calday{min-height:96px;border:1px solid var(--line);border-radius:8px;padding:4px;display:flex;flex-direction:column;gap:3px;background:var(--card);min-width:0}
.calday.out{opacity:.45}.calday.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.calday .dn{font-size:.8rem;color:var(--mut);text-decoration:none;align-self:flex-end}
.ev{display:block;font-size:.75rem;line-height:1.25;padding:2px 5px;border-radius:5px;background:rgba(var(--acc),.22);color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev small{opacity:.7}
.ev.k-rdv{background:rgba(70,120,200,.22)}.ev.k-reperage{background:rgba(120,120,120,.22)}
.ev.k-livraison{background:rgba(47,125,79,.25)}.ev.k-montage{background:rgba(150,90,190,.22)}
.ev.k-projet{background:rgba(var(--acc),.1);border:1px dashed var(--accent)}.ev.k-deadline{background:rgba(180,83,31,.2)}
.legend{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 0}.legend .ev{display:inline-block}
.trip{border:1px solid var(--line);border-radius:10px;padding:12px}.trip legend{padding:0 6px;color:var(--mut)}
@media (max-width:760px){.calday{min-height:64px}.ev{font-size:.65rem;padding:1px 3px}.ev b,.ev small{display:none}}

/* ---- Mailing (étape 6) ---- */
.subtabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.subtabs a{padding:7px 14px;border-radius:99px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:.92rem}
.subtabs a.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.note-rgpd{font-size:.9rem;background:rgba(var(--acc),.1)}
.preview{white-space:pre-wrap;background:var(--bg);padding:12px;border-radius:8px;font:inherit;font-size:.9rem;margin:0}

/* ---- Finances / matériel (étape 7) ---- */
.bars{display:grid;grid-template-columns:44px 1fr auto;gap:8px;align-items:center;font-size:.8rem;margin:4px 0}
.bars>div{display:flex;flex-direction:column;gap:2px}
.b{display:block;height:7px;border-radius:4px}.b.in{background:var(--ok,#2f7d4f)}.b.out{background:var(--accent)}
@media (max-width:760px){.bars{grid-template-columns:40px 1fr}.bars>span:last-child{grid-column:1/-1}}

/* ---- Signature en ligne (étape 9) ---- */
.signpage{background:var(--bg)}
.signwrap{max-width:760px;margin:0 auto;padding:18px 16px 40px}
.contractbox{white-space:pre-wrap;max-height:420px;overflow-y:auto;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:14px;font-size:.92rem;line-height:1.5}
#pad{width:100%;height:auto;aspect-ratio:640/220;background:#fff;border:2px dashed var(--line);border-radius:10px;touch-action:none;cursor:crosshair;display:block}
.signwrap label{display:block}

/* Logo */
.brand{text-decoration:none;color:inherit}
.brand .logo{display:none}.collapsed .side .brand .logo{display:inline-grid}.collapsed .side .brand .logoimg{display:none}
.logoimg{display:block;height:20px;width:auto;max-width:100%}
.side .brand{padding:6px 8px 20px}
.logincard .brand{background:var(--side);border-radius:var(--r);padding:20px 16px;justify-content:center;margin-bottom:10px}
.logincard .logoimg{height:26px}
@media(max-width:900px){.collapsed .side .brand .logo{display:none}.collapsed .side .brand .logoimg{display:block}}

/* ====================== THÈME PREMIUM (sombre, accents dorés) ====================== */
:root{color-scheme:dark;--bg:#0b0c0f;--card:#14161b;--card2:#1a1d23;--ink:#ece9e1;--mut:#8d919b;--line:#252830;--accent:#c9a14a;--accent2:#e3c47a;--accent3:#a98334;--acc:201,161,74;--acc2:227,196,122;--accent-ink:#17140b;--side:#08090b;--side-ink:#b9bcc4;--ok:#58c08a;--warn:#e08a55;--r:14px;
 --shadow:0 1px 0 rgba(255,255,255,.04) inset,0 10px 30px -18px rgba(0,0,0,.8);--gold:linear-gradient(135deg,var(--accent2),var(--accent) 55%,var(--accent3))}
@media (prefers-color-scheme:light){:root{--bg:#0b0c0f;--card:#14161b;--ink:#ece9e1;--mut:#8d919b;--line:#252830;--side:#08090b}}
html{-webkit-text-size-adjust:100%}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;
 background:radial-gradient(1200px 600px at 85% -10%,rgba(var(--acc),.07),transparent 60%),var(--bg);letter-spacing:.005em}
::selection{background:rgba(var(--acc),.35)}
h1,h2,h3{font-weight:600;letter-spacing:.01em}
h1{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.7rem;font-weight:700;letter-spacing:.01em}
h2{font-size:1rem;color:var(--ink)}
a{text-decoration-color:rgba(var(--acc),.5)}
/* menu latéral */
.side{background:linear-gradient(180deg,#0b0c0f,#08090b);border-right:1px solid var(--line);padding:18px 12px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#2a2d36 transparent}
.side .brand{padding:6px 10px 18px}
.side nav{gap:1px}
.navgrp{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:#5f636d;padding:16px 12px 6px}
.side nav a,.logout button{position:relative;padding:9px 12px;border-radius:10px;color:var(--side-ink);font-size:.92rem;font-weight:500;transition:background .15s,color .15s}
.side nav a:hover,.logout button:hover{background:rgba(255,255,255,.05);color:#fff}
.side nav a.on{background:linear-gradient(90deg,rgba(var(--acc),.18),rgba(var(--acc),.04));color:var(--accent2);font-weight:600}
.side nav a.on::before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--gold)}
.ic{flex:none;opacity:.9}
.collapsed .navgrp{display:none}.collapsed .side nav a{justify-content:center;padding:11px 0}.collapsed .side nav a.on::before{left:-12px}
.logout{border-top:1px solid var(--line);padding-top:10px;margin-top:8px}
/* barre du haut */
.top{background:rgba(11,12,15,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:14px 26px}
.burger{background:var(--card);border-color:var(--line);color:var(--side-ink)}
main{padding:26px}
/* cartes */
.card,.kpi,.kcol{background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.card{padding:20px}
.kpi{padding:16px 18px;transition:border-color .15s,transform .15s}
.kpi b{font-size:1.75rem;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.kpi span{text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;margin-top:6px}
a.kpi:hover{border-color:rgba(var(--acc),.55);transform:translateY(-1px)}
/* boutons */
.btn{background:var(--gold);color:var(--accent-ink);border:0;border-radius:10px;padding:10px 18px;font-weight:600;letter-spacing:.01em;box-shadow:0 6px 18px -8px rgba(var(--acc),.6);transition:transform .12s,filter .12s,box-shadow .12s}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn:active{transform:none}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);box-shadow:none}
.btn.ghost:hover{border-color:rgba(var(--acc),.55);color:var(--accent2)}
.btn.danger:hover{border-color:var(--warn);color:var(--warn)}
.btn.small{padding:6px 12px;border-radius:9px}
/* formulaires */
input,select,textarea{background:#0e1014;border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--ink);transition:border-color .15s,box-shadow .15s}
input::placeholder,textarea::placeholder{color:#5c606a}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--acc),.18)}
input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
label{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--mut)}
label.check,label.inlinechk{text-transform:none;letter-spacing:0;font-size:.9rem;color:var(--ink)}
/* tableaux */
th{font-size:.68rem;letter-spacing:.12em;color:#6d717b;border-bottom:1px solid var(--line)}
td{border-bottom:1px solid rgba(255,255,255,.05)}
tbody tr:hover{background:rgba(var(--acc),.06)}
.row{border-bottom-color:rgba(255,255,255,.06)}
/* étiquettes et messages */
.tag{background:rgba(var(--acc),.14);color:var(--accent2);border:1px solid rgba(var(--acc),.25);font-size:.7rem;letter-spacing:.03em;padding:2px 10px}
.tag.valide,.tag.disponible{background:rgba(88,192,138,.12);color:var(--ok);border-color:rgba(88,192,138,.3)}
.tag.annule,.tag.annulee{background:rgba(224,138,85,.12);color:var(--warn);border-color:rgba(224,138,85,.3)}
.flash{background:rgba(88,192,138,.1);color:var(--ok);border:1px solid rgba(88,192,138,.28);border-radius:12px}
.flash.warn{background:rgba(224,138,85,.1);color:var(--warn);border-color:rgba(224,138,85,.3)}
code{background:#0e1014;border-color:var(--line)}
.note{background:#0e1014;border:1px solid var(--line)}
table.amounts tr.tot td{border-top:2px solid var(--accent)}
/* projets */
.kcard{background:#0f1115;border-color:var(--line);border-radius:12px;transition:border-color .15s,transform .15s}
.kcard:hover{border-color:rgba(var(--acc),.5)}
.kcol h2{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;color:var(--mut)}
.kbar{background:#23262e}.kbar i{background:var(--gold)}
.kshow{width:100%;margin-top:10px}
.filterbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:14px}
.filterbar input[type=search]{flex:2;min-width:220px;width:auto}.filterbar select{flex:1;min-width:140px;width:auto}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-left:auto}
.seg a{padding:7px 14px;text-decoration:none;font-size:.85rem;color:var(--mut)}.seg a.on{background:rgba(var(--acc),.16);color:var(--accent2);font-weight:600}
.projlist tbody tr{cursor:pointer}
/* connexion */
body.login{background:radial-gradient(900px 500px at 50% 0%,rgba(var(--acc),.12),transparent 60%),var(--bg)}
.logincard{padding:28px;border-radius:18px}
.logincard h1{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.9rem;text-align:center}
.logincard .brand{background:transparent;padding:6px 0 4px}.logincard .logoimg{height:30px;margin:0 auto}
/* barre d'onglets mobile */
.tabbar,.scrim{display:none}
@media(max-width:860px){
 body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
 .top{padding:12px 16px}.burger{display:none}h1{font-size:1.45rem}
 main{padding:16px}.card{padding:16px}
 input,select,textarea{font-size:16px;padding:12px}
 .btn{padding:12px 18px}.btn.small{padding:9px 14px}
 .kpis{grid-template-columns:repeat(2,1fr)}.kpi b{font-size:1.45rem}
 .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(10,11,14,.88);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
 .tabbar a,.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 2px;border:0;background:none;color:#7b7f89;font:inherit;font-size:.66rem;letter-spacing:.02em;text-decoration:none;border-radius:12px}
 .tabbar .ic{width:22px;height:22px}
 .tabbar a.on{color:var(--accent2)}.tabbar a.on .ic{filter:drop-shadow(0 0 8px rgba(var(--acc),.5))}
 .side{position:fixed;left:-290px;top:0;bottom:0;width:270px;z-index:50;transition:left .25s ease;height:100%}
 .open .side{left:0;box-shadow:20px 0 60px rgba(0,0,0,.6)}
 .scrim{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:40;opacity:0;pointer-events:none;transition:opacity .2s;display:block}
 .open .scrim{opacity:1;pointer-events:auto}
 .collapsed .side{width:270px}.collapsed .lbl{display:inline}.collapsed .navgrp{display:block}.collapsed .side nav a{justify-content:flex-start;padding:9px 12px}
 .side nav a{padding:12px}
 .seg{margin-left:0}
 .filterbar input[type=search]{flex:1 1 100%}
 table{font-size:.9rem}
}

/* étape 20 : pastilles de cartes projet sans débordement */
.kcard .badge,.kcard .pill,.kcard span{max-width:100%;white-space:normal;overflow-wrap:anywhere}

/* étape 20b : logo marque, pleine largeur, animations premium */
.logomark{display:none;width:30px;height:30px}
.collapsed .side .brand .logomark{display:block!important}
.collapsed .side .brand .logoimg{display:none}
@media(max-width:900px){.collapsed .side .brand .logomark{display:none}}
.signwrap .brand,.logincard .brand{display:flex;justify-content:center}
.signwrap .logoimg{height:24px}
main{max-width:none!important;width:100%}
.main{width:100%}
@keyframes lpIn{from{opacity:.25;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes lpPop{0%{transform:scale(.97)}60%{transform:scale(1.015)}100%{transform:scale(1)}}
@keyframes lpShine{from{transform:translateX(-120%) skewX(-20deg)}to{transform:translateX(260%) skewX(-20deg)}}
main>*{animation:lpIn .45s cubic-bezier(.2,.7,.2,1) both}
main>*:nth-child(2){animation-delay:.05s}main>*:nth-child(3){animation-delay:.1s}main>*:nth-child(4){animation-delay:.15s}main>*:nth-child(n+5){animation-delay:.2s}
.card,.kcard,.kpi,.stat,.tile{transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s,border-color .25s,background .25s}
.card:hover,.kcard:hover,.kpi:hover,.stat:hover,.tile:hover{transform:translateY(-3px);border-color:rgba(var(--acc),.45);box-shadow:0 14px 34px -14px rgba(0,0,0,.8),0 0 0 1px rgba(var(--acc),.12)}
.side nav a,.side a{transition:background .2s,color .2s,transform .2s,padding-left .2s}
.side nav a:hover{transform:translateX(4px);color:var(--accent2)}
.side nav a:active{transform:translateX(2px) scale(.98)}
.side nav a svg{transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.side nav a:hover svg{transform:scale(1.18) rotate(-6deg)}
.brand .logoimg,.brand .logomark{transition:transform .35s cubic-bezier(.2,.7,.2,1),filter .35s}
.brand:hover .logoimg,.brand:hover .logomark{transform:scale(1.05);filter:drop-shadow(0 0 10px rgba(var(--acc2),.55))}
.brand:hover .logomark{transform:scale(1.08) rotate(60deg)}
.btn,button,.seg a,.seg button{position:relative;overflow:hidden;transition:transform .18s cubic-bezier(.2,.7,.2,1),box-shadow .25s,filter .2s,background .2s,border-color .2s}
.btn:hover,button:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px rgba(var(--acc),.55);filter:brightness(1.06)}
.btn:active,button:active{transform:translateY(0) scale(.96);box-shadow:none}
.btn::after{content:"";position:absolute;top:0;bottom:0;left:0;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:translateX(-120%) skewX(-20deg);pointer-events:none}
.btn:hover::after{animation:lpShine .7s ease}
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.35);transform:scale(0);animation:lpRip .6s ease-out forwards;pointer-events:none}
@keyframes lpRip{to{transform:scale(4);opacity:0}}
tbody tr{transition:background .18s,transform .18s}
tbody tr:hover{background:rgba(var(--acc),.07)}
input,select,textarea{transition:border-color .2s,box-shadow .25s,background .2s}
input:focus,select:focus,textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(var(--acc),.18);outline:none}
.badge,.pill,.tag{transition:transform .2s,filter .2s}
.badge:hover,.pill:hover,.tag:hover{transform:translateY(-1px) scale(1.04);filter:brightness(1.15)}
.tabbar a{transition:transform .2s,color .2s}
.tabbar a:active{transform:scale(.88)}
.tabbar a.on svg,.tabbar a[aria-current] svg{animation:lpPop .4s ease}
.flash{animation:lpIn .4s ease both}
a{transition:color .15s}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* étape 20c : roue crantée + sélecteur de date */
.top .actions{display:flex;align-items:center;gap:10px}
.gear{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--mut);text-decoration:none;transition:color .2s,border-color .2s,transform .2s}
.gear svg{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.gear:hover,.gear.on{color:var(--accent2);border-color:rgba(var(--acc),.55)}
.gear:hover svg{transform:rotate(90deg)}
.datepick{display:flex;gap:8px;align-items:center;margin:0}
.datepick select,.datepick input{width:auto;background:transparent;border:1px solid transparent;border-radius:10px;font:inherit;font-size:1.25rem;font-weight:600;color:var(--ink);padding:4px 8px;cursor:pointer}
.datepick input{width:5.2em;-moz-appearance:textfield}
.datepick input::-webkit-inner-spin-button{opacity:0}
.datepick select:hover,.datepick input:hover,.datepick select:focus,.datepick input:focus{border-color:rgba(var(--acc),.5);background:var(--card2)}
@media(max-width:860px){.gear{width:36px;height:36px;flex:none}}

/* palette de recherche */
#pal{position:fixed;inset:0;z-index:200;background:rgba(4,5,7,.66);backdrop-filter:blur(6px);display:flex;justify-content:center;align-items:flex-start;padding:12vh 14px 0;animation:lpIn .18s ease both}
#pal[hidden]{display:none}
.palbox{width:min(640px,100%);background:var(--card);border:1px solid rgba(var(--acc),.35);border-radius:16px;box-shadow:0 30px 80px -20px #000;overflow:hidden}
#palq{width:100%;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0;background:transparent;padding:16px 18px;font-size:1.05rem;box-shadow:none!important}
#pall{list-style:none;margin:0;padding:6px;max-height:50vh;overflow:auto}
#pall li{display:grid;grid-template-columns:78px 1fr;gap:2px 10px;padding:9px 12px;border-radius:10px;cursor:pointer;align-items:center}
#pall li .ps{grid-column:2;color:var(--mut);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#pall li .pt{grid-row:1/3;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent2)}
#pall li.on,#pall li:hover{background:rgba(var(--acc),.14)}
#pall li.none{color:var(--mut);display:block;cursor:default}
.palhint{padding:8px 14px;border-top:1px solid var(--line);color:var(--mut);font-size:.74rem}
.srchbtn{cursor:pointer;font:inherit}
@media(max-width:860px){.palhint{display:none}}

.todolist{list-style:none;margin:0;padding:0}
.todolist li{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--line);transition:background .2s,transform .2s}
.todolist li:last-child{border:0}.todolist li:hover{background:rgba(var(--acc),.06);transform:translateX(3px)}
.todolist .ti{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--card2);flex:none}
.todolist div{flex:1;min-width:0}.todolist b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.todolist small{color:var(--mut)}
.todolist li.p0 .ti{background:rgba(224,138,85,.2);color:var(--warn)}.todolist li.p1 .ti{background:rgba(var(--acc),.2);color:var(--accent2)}

.steps{padding-left:20px;line-height:1.7}.steps li{margin-bottom:6px}.steps code{background:var(--card2);padding:1px 6px;border-radius:6px;font-size:.82rem}

/* ====================== étape 23 : lisibilité ====================== */
html{font-size:var(--fs,16px)}
body{font-size:1rem;line-height:1.55}
:root{--mut:#a6aab4}
.muted,.kmeta{color:var(--mut)}.muted{font-size:.93rem}
.navgrp{font-size:.74rem;color:#8c909b;letter-spacing:.14em}
.side nav a{font-size:.97rem}
th{font-size:.76rem;color:var(--mut);letter-spacing:.09em}
td,th{padding:.78em .7em}
td{font-size:.97rem}
.kpi span{font-size:.78rem;color:var(--mut)}
label{font-size:.84rem;color:var(--mut)}
label.check,label.inlinechk{font-size:.95rem}
.tag,.badge,.pill{font-size:.8rem}
.btn.small{font-size:.9rem}
input::placeholder,textarea::placeholder{color:#7d818c}
.tabbar a,.tabbar button{font-size:.72rem;color:#a0a4ae}
h2{font-size:1.1rem}
.kcol h2{font-size:.78rem}
.kmeta{font-size:.86rem}
.calh{font-size:.86rem}.ev{font-size:.8rem}
:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}
/* réglage de taille et thème */
.vbtn{display:inline-grid;place-items:center;min-width:40px;height:40px;padding:0 10px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--mut);cursor:pointer;font:inherit;font-weight:700;transition:color .2s,border-color .2s,transform .2s}
.vbtn:hover{color:var(--accent2);border-color:rgba(var(--acc),.55);transform:translateY(-1px)}
@media(max-width:860px){.vbtn{min-width:36px;height:36px}#fsbtn{display:none}}
/* thème clair (menu latéral toujours sombre) */
html[data-theme=light]{color-scheme:light;--bg:#f3f4f6;--card:#ffffff;--card2:#eceef1;--ink:#1c1c20;--mut:#5a5d66;--line:#dde0e5;--accent:#b8892a;--accent2:#8a6410;--accent-ink:#1b1608;--ok:#23764a;--warn:#b4531f;--field:#fafbfc;
  --shadow:0 1px 2px rgba(40,30,10,.06),0 10px 26px -18px rgba(20,24,32,.28)}
html[data-theme=light] body{background:radial-gradient(1200px 600px at 85% -10%,rgba(var(--acc),.04),transparent 60%),var(--bg)}
html[data-theme=light] .top{background:rgba(243,244,246,.85)}
html[data-theme=light] input,html[data-theme=light] select,html[data-theme=light] textarea,html[data-theme=light] code,html[data-theme=light] .note,html[data-theme=light] .kcard,html[data-theme=light] .contractbox,html[data-theme=light] .preview{background:var(--field)}
html[data-theme=light] input::placeholder,html[data-theme=light] textarea::placeholder{color:#8b8e96}
html[data-theme=light] th{color:#5a5d66}
html[data-theme=light] td,html[data-theme=light] .row,html[data-theme=light] .todolist li{border-bottom-color:rgba(0,0,0,.07)}
html[data-theme=light] tbody tr:hover{background:rgba(184,137,42,.08)}
html[data-theme=light] .kbar{background:#e3e6ea}
html[data-theme=light] .btn.ghost,html[data-theme=light] .gear,html[data-theme=light] .vbtn{background:var(--card);color:var(--ink)}
html[data-theme=light] .tag{background:rgba(184,137,42,.14);color:var(--accent2);border-color:rgba(184,137,42,.35)}
html[data-theme=light] .tabbar{background:#fff;border-top-color:var(--line)}
html[data-theme=light] .tabbar a,html[data-theme=light] .tabbar button{color:#6c7079}
html[data-theme=light] .tabbar a.on{color:var(--accent2)}
html[data-theme=light] .palbox{background:#fff}
html[data-theme=light] .card:hover,html[data-theme=light] .kpi:hover{box-shadow:0 14px 30px -16px rgba(20,24,32,.28),0 0 0 1px rgba(184,137,42,.25)}
html[data-theme=light] .gear.on,html[data-theme=light] .gear:hover,html[data-theme=light] .vbtn:hover{color:var(--accent2)}
html[data-theme=light] ::selection{background:rgba(184,137,42,.3)}

label.check{flex-direction:row;align-items:center;gap:10px;grid-column:1/-1}
label.check input{width:auto;flex:none}

/* ====================== étape 24 : mobile premium, fluidité ====================== */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.18s}
#nprog{position:fixed;top:0;left:0;height:2px;width:0;background:var(--gold);z-index:300;box-shadow:0 0 10px rgba(var(--acc2),.7);opacity:0;pointer-events:none}
#nprog.go{opacity:1;width:82%;transition:width 6s cubic-bezier(.1,.7,.2,1)}
.fab,.sheet,.viewopts{display:none}
.todaycard{display:block;text-decoration:none;color:inherit;background:linear-gradient(135deg,rgba(var(--acc),.16),rgba(var(--acc),.04));border:1px solid rgba(var(--acc),.4);border-radius:var(--r);padding:14px 16px;margin-bottom:16px;transition:transform .2s,border-color .2s}
.todaycard:hover{transform:translateY(-2px);border-color:rgba(var(--acc),.75)}
.todaycard.ok{background:var(--card);border-color:var(--line)}
.tchd{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.tchd b{font-size:1.02rem}.tcn{min-width:26px;height:26px;border-radius:99px;background:var(--gold);color:var(--accent-ink);display:inline-grid;place-items:center;font-weight:700;font-size:.85rem;padding:0 8px}
.tcrow{display:flex;gap:10px;align-items:center;padding:5px 0;font-size:.95rem}.tcrow .ti{width:24px;text-align:center;opacity:.9}.tct{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcmore{color:var(--accent2);font-size:.88rem;font-weight:600;margin-top:4px}
.fold>summary{cursor:pointer;color:var(--mut);font-weight:600;padding:6px 2px 12px;list-style:none}
.fold>summary::before{content:"▸ ";color:var(--accent2)}.fold[open]>summary::before{content:"▾ "}
.fold>summary::-webkit-details-marker{display:none}
@media(min-width:861px){.fold>summary{display:none}}
@media(max-width:860px){
 /* en-tête allégé : titre + recherche + réglages ; le bouton d'action passe dans le « + » flottant */
 .top{padding:10px 14px;position:sticky;top:0;z-index:20;gap:8px}
 .top h1{font-size:1.28rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
 .top h1 .count,.top h1 small{display:none}
 .top .actions{gap:6px;flex:none}
 .top .actions>*:not(.gear):not(.srchbtn):not(.keepmob){display:none}
 .top .actions .keepmob{padding:8px 12px;font-size:.88rem;white-space:nowrap}
 .gear{width:40px;height:40px}
 .viewopts{display:flex;flex-direction:column;gap:8px;padding:10px 4px;border-top:1px solid var(--line);margin-top:6px}
 .viewopts .vbtn.wide{width:100%;justify-content:flex-start;height:44px;font-weight:600;font-size:.92rem}
 /* bouton « + » et feuille de création */
 .fab{display:grid;place-items:center;position:fixed;right:16px;bottom:calc(86px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:18px;border:0;background:var(--gold);color:var(--accent-ink);z-index:35;box-shadow:0 12px 28px -8px rgba(var(--acc),.65),0 2px 6px rgba(0,0,0,.4);transition:transform .2s cubic-bezier(.2,.7,.2,1)}
 .fab[hidden]{display:none}
 .fab:active{transform:scale(.92)}.fab.open{transform:rotate(45deg)}
 .sheet{display:block;position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.55);opacity:0;pointer-events:none;transition:opacity .2s}
 .sheet[hidden]{display:block}
 .sheet.show{opacity:1;pointer-events:auto}
 .sheetbox{position:absolute;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid rgba(var(--acc),.4);border-radius:22px 22px 0 0;padding:14px 14px calc(18px + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);max-height:80vh;overflow:auto}
 .sheet.show .sheetbox{transform:none}
 .sheethd{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);padding:2px 8px 10px}
 .sheetbox a{display:flex;align-items:center;gap:12px;padding:14px 12px;border-radius:14px;color:var(--ink);text-decoration:none;font-weight:600;font-size:1.02rem}
 .sheetbox a:active,.sheetbox a:hover{background:rgba(var(--acc),.14)}
 .sheetbox a i{font-style:normal;width:34px;height:34px;border-radius:11px;background:rgba(var(--acc),.16);color:var(--accent2);display:grid;place-items:center}
 /* chiffres clés compacts */
 .kpis.big{grid-template-columns:1fr 1fr;gap:10px}
 .kpis.big .kpi{padding:12px 14px}.kpis.big .kpi b{font-size:1.3rem}
 .kpis.big .kpi:nth-child(n+3){padding:10px 14px}.kpis.big .kpi:nth-child(n+3) b{font-size:1.15rem}
 .kpis.mini{scroll-padding-left:16px;display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;margin:0 -16px 14px;padding:2px 16px 6px;scrollbar-width:none}
 .kpis.mini::-webkit-scrollbar{display:none}
 .kpis.mini .kpi{flex:0 0 auto;min-width:104px;padding:9px 12px;scroll-snap-align:start}
 .kpis.mini .kpi b{font-size:1.1rem}.kpis.mini .kpi span{font-size:.66rem;margin-top:2px;white-space:nowrap}
 .kpi span{letter-spacing:.05em}
 .grid2{gap:12px}.card{border-radius:16px}
 /* tableaux = cartes empilées */
 main table.rc{display:block;width:100%}
 main table.rc thead{display:none}
 main table.rc tbody{display:block}
 main table.rc tr{display:block;background:var(--card2);border:1px solid var(--line);border-radius:14px;margin:0 0 10px;padding:10px 14px}
 main table.rc td{display:flex;justify-content:space-between;align-items:center;gap:14px;border:0;padding:5px 0;text-align:right;font-size:.94rem;min-height:0}
 main table.rc td::before{content:attr(data-label);color:var(--mut);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;text-align:left;flex:none}
 main table.rc td:first-child{display:block;text-align:left;font-size:1.04rem;font-weight:600;padding-bottom:6px}
 main table.rc td:first-child::before{display:none}
 main table.rc td:empty,main table.rc td.nolbl::before{display:none}
 main table.rc td:empty{display:none}
 main table.rc td:last-child:has(.btn){justify-content:flex-end}
 main table.rc td.num{justify-content:space-between}
 .tablewrap{overflow:visible;padding:12px!important}
 /* kanban : défilement par colonne */
 .kcol{scroll-snap-align:start}
 *:has(>.kcol){scroll-snap-type:x proximity}
 /* zones tactiles confortables */
 .btn.small{min-height:40px}
 main{padding-bottom:110px}
 .filterbar select{flex:1 1 100%;width:100%}
 .filterbar .btn{flex:1 1 100%}
 .subtabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;margin-right:-16px;padding-right:16px}
 .subtabs::-webkit-scrollbar{display:none}.subtabs a{white-space:nowrap;flex:none}
 main>*{animation-duration:.3s}
}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* mode discret : montants floutés (toucher un montant l'affiche 5 secondes) */
.amt{transition:filter .25s}
html[data-privacy="1"] .amt{filter:blur(8px);cursor:pointer;user-select:none;-webkit-user-select:none}
html[data-privacy="1"] .amt.show{filter:none;user-select:auto}
html[data-privacy="1"] canvas.money,html[data-privacy="1"] .moneyblur{filter:blur(10px)}
html[data-privacy="1"] input.priv,html[data-privacy="1"] td.priv{filter:blur(7px)}
html[data-privacy="1"] input.priv:focus{filter:none}
.privbtn{position:relative}
html[data-privacy="1"] .privbtn{color:var(--accent2);border-color:rgba(var(--acc),.6);background:rgba(var(--acc),.12)}
html[data-privacy="1"] .privbtn::after{content:"";position:absolute;width:24px;height:2px;background:currentColor;transform:rotate(-45deg);border-radius:2px}
@media(max-width:860px){.top .actions .privbtn{display:inline-grid!important}}

/* Étape 25 — bandeau hors ligne */
#offbar{display:none;position:fixed;left:0;right:0;top:0;z-index:300;padding:.45rem .8rem;text-align:center;font-size:.85rem;background:#7a5b12;color:#fff}
html[data-offline] #offbar{display:block}

/* Étape 26 — paramètres condensés */
details.sect{padding:0;margin-bottom:10px}
details.sect>summary{list-style:none;cursor:pointer;padding:14px 16px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;position:relative;padding-right:40px}
details.sect>summary::-webkit-details-marker{display:none}
details.sect>summary::after{content:"›";position:absolute;right:16px;top:50%;transform:translateY(-50%) rotate(90deg);transition:transform .2s;font-size:1.3rem;opacity:.7}
details.sect[open]>summary::after{transform:translateY(-50%) rotate(-90deg)}
details.sect>summary .muted{font-size:.85rem}
details.sect>*:not(summary){margin-left:16px;margin-right:16px}
details.sect>*:last-child{margin-bottom:16px}

/* Étape 28 — page de paiement client */
.payamount{font-size:2.4rem;font-weight:700;letter-spacing:-.02em;margin:10px 0 6px;color:var(--gold,#d6b25e)}

/* Étape 28 — mise en page premium : rythme, grilles équilibrées, cartes et tableaux */
:root{--gap:20px}
main{padding:28px clamp(18px,2.4vw,40px) 56px}
main>*+*{margin-top:var(--gap)}
main>.kpis,main>.grid2,main>.card,main>section{margin-bottom:0}
.card{padding:22px 24px}
.card>h2:first-child,.card>.h2row h2{margin-top:0;font-size:1.05rem;letter-spacing:.01em}
.card h2{font-weight:650}
.card h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--mut);margin:18px 0 8px}
.grid2{gap:var(--gap)}
.cards3{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:var(--gap);margin:0}
.cards3 .card{margin:0}
.kpis{gap:14px;margin-bottom:0}
.kpis.big{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpis.big .kpi{padding:20px 22px}
.kpis.big .kpi b{font-size:2rem}
.kpis.mini{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpis.mini .kpi{padding:14px 18px;flex-direction:row;align-items:baseline;gap:12px}
.kpis.mini .kpi b{font-size:1.35rem;min-width:1.4em}
.kpis.mini .kpi span{margin-top:0;line-height:1.25}
@media(min-width:1500px){.kpis.mini{grid-template-columns:repeat(8,minmax(0,1fr))}.kpis.mini .kpi{flex-direction:column;gap:0}.kpis.mini .kpi span{margin-top:6px}}
@media(max-width:1100px){.kpis.big,.kpis.mini{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tablewrap{border:1px solid var(--line);border-radius:14px;overflow:auto}
.tablewrap table{margin:0}
table th{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:var(--mut);font-weight:600;padding:13px 16px;position:sticky;top:0;background:var(--card2)}
table td{padding:14px 16px}
table tbody tr{transition:background .15s}
table tbody tr:hover{background:rgba(var(--acc),.06)}
.formgrid{gap:16px 18px}
label{font-size:.82rem}
input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(var(--acc),.8);box-shadow:0 0 0 3px rgba(var(--acc),.18)}
.btnrow{gap:10px;margin-top:6px}
.top{padding:14px clamp(18px,2.4vw,40px)}
.side nav a,.side a.nav{border-radius:10px}
.todaycard{padding:20px 24px}
@media(max-width:900px){
  :root{--gap:14px}
  main{padding:14px 14px 96px}
  .card{padding:16px}
  .kpis.mini .kpi{flex:0 0 auto}
  .cards3{grid-template-columns:1fr}
}
.kpi b .amt,.kpi b .amt.show{font:inherit;text-transform:none;letter-spacing:inherit;color:inherit;margin:0;display:inline}
form.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
form.filters input[type=search]{flex:2;min-width:220px;width:auto}form.filters select{flex:1;min-width:150px;width:auto}
@media(max-width:900px){
  form.filters input[type=search],form.filters select,form.filters .btn{flex:1 1 100%;width:100%;min-width:0}
  input::placeholder{font-size:.9rem}
}

/* ================= Étape 30 — charte, options d'affichage, finitions ================= */
/* Accents (réglage Paramètres → Affichage) */
html[data-accent=argent]{--accent:#aeb6c4;--accent2:#d8dde6;--accent3:#7f8797;--acc:174,182,196;--acc2:216,221,230;--accent-ink:#101216}
html[data-accent=rose]{--accent:#d98a9b;--accent2:#f0b9c4;--accent3:#b4586d;--acc:217,138,155;--acc2:240,185,196;--accent-ink:#2a0f16}
html[data-accent=emeraude]{--accent:#4fb58a;--accent2:#8adab6;--accent3:#2f8a64;--acc:79,181,138;--acc2:138,218,182;--accent-ink:#06180f}
html[data-accent=saphir]{--accent:#6b9bff;--accent2:#a6c2ff;--accent3:#4468c6;--acc:107,155,255;--acc2:166,194,255;--accent-ink:#061230}
html[data-accent=argent][data-theme=light]{--accent:#6f7888;--accent2:#4b5363;--accent3:#555d6c;--acc:111,120,136;--accent-ink:#fff}
html[data-accent=rose][data-theme=light]{--accent:#b5546a;--accent2:#8b3548;--accent3:#8b3548;--acc:181,84,106;--accent-ink:#fff}
html[data-accent=emeraude][data-theme=light]{--accent:#2f8a64;--accent2:#1d6446;--accent3:#1d6446;--acc:47,138,100;--accent-ink:#fff}
html[data-accent=saphir][data-theme=light]{--accent:#3f66d0;--accent2:#2a4aa3;--accent3:#2a4aa3;--acc:63,102,208;--accent-ink:#fff}
/* Densité compacte */
html[data-density=compact]{--gap:12px}
html[data-density=compact] main{padding-top:16px}
html[data-density=compact] .card{padding:14px 16px}
html[data-density=compact] td,html[data-density=compact] th{padding:8px 12px}
html[data-density=compact] .kpis.big .kpi{padding:14px 16px}html[data-density=compact] .kpis.big .kpi b{font-size:1.6rem}
html[data-density=compact] .side nav a{padding:7px 10px}
html[data-density=compact] .formgrid{gap:10px 14px}
/* Animations réduites */
html[data-motion=off] *,html[data-motion=off] *::before,html[data-motion=off] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Entrée douce des cartes (une seule fois par page) */
@keyframes lpIn{from{opacity:.25;transform:translateY(6px)}to{opacity:1;transform:none}}
main>.card,main>section,main>.kpis,main>form{animation:lpIn .45s cubic-bezier(.2,.7,.2,1) both}
main>*:nth-child(2){animation-delay:.04s}main>*:nth-child(3){animation-delay:.08s}main>*:nth-child(4){animation-delay:.12s}main>*:nth-child(n+5){animation-delay:.16s}
/* Anti-débordement mobile */
main{min-width:0}main>*{min-width:0;max-width:100%}
.grid2>*,.cards3>*,.formgrid>*{min-width:0}
.subtabs{overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap;max-width:100%}.subtabs::-webkit-scrollbar{display:none}.subtabs a{white-space:nowrap}
@media(max-width:900px){.kpis.mini{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}}
/* Kanban : les colonnes remplissent la largeur */
.kanban{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:12px;overflow-x:auto}
.kcol,.kcol.dim{min-width:0;flex:none;opacity:1}
.kcol.dim{opacity:.85}
@media(max-width:860px){.kanban{display:flex}.kcol{flex:0 0 240px}}
/* Formulaires : largeur de lecture confortable */
main>form.card:not(.filters):not([action]),main>form.card.formgrid:not([action]){max-width:1040px}
/* Menu « ⋯ » (actions secondaires) */
details.more{position:relative}
details.more>summary{list-style:none;cursor:pointer;width:40px;padding:0;justify-content:center;font-size:1.2rem;letter-spacing:.1em}
details.more>summary::-webkit-details-marker{display:none}
details.more .menu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:210px;padding:6px;border-radius:14px;background:var(--card2);border:1px solid var(--line);box-shadow:0 24px 50px -18px rgba(0,0,0,.85);display:flex;flex-direction:column;gap:2px;animation:lpIn .18s both}
details.more .menu a,details.more .menu button{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:9px;border:0;background:none;color:var(--ink);font:inherit;text-decoration:none;cursor:pointer}
details.more .menu a:hover,details.more .menu button:hover{background:rgba(var(--acc),.12)}
details.more .menu form{margin:0}
details.more .menu .danger{color:var(--warn)}
@media(max-width:860px){.top .actions details.more{display:none}}
/* États vides */
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:34px 16px!important;color:var(--mut)}
.empty::before{content:"";width:46px;height:46px;border-radius:14px;border:1px dashed rgba(var(--acc),.5);background:rgba(var(--acc),.08) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9a14a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7l9-4 9 4-9 4z'/%3E%3Cpath d='M3 7v10l9 4 9-4V7'/%3E%3C/svg%3E") center/24px no-repeat}
td.empty{display:table-cell;text-align:center}td.empty::before{display:block;margin:0 auto 10px}
/* Messages : toast qui disparaît seul */
.flash{display:flex;align-items:center;gap:12px;justify-content:space-between;border-radius:14px;transition:opacity .4s,transform .4s,max-height .4s,margin .4s,padding .4s;max-height:200px;overflow:hidden}
.flash.out{opacity:0;transform:translateY(-6px);max-height:0;margin:0;padding-top:0;padding-bottom:0}
.flash .x{background:none;border:0;color:inherit;font-size:1.2rem;cursor:pointer;opacity:.7;line-height:1}
/* Groupes du menu repliables */
.navgrp{cursor:pointer;display:flex;justify-content:space-between;align-items:center;user-select:none}
.navgrp::after{content:"›";transform:rotate(90deg);transition:transform .2s;opacity:.6;font-size:1rem}
.navgrp.shut::after{transform:rotate(0)}
.side nav a.hid{display:none}
.collapsed .side .navgrp::after{display:none}
/* Pastille de choix (Paramètres → Affichage) */
.swatches{display:flex;gap:10px;flex-wrap:wrap}
.swatch{width:38px;height:38px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .2s,border-color .2s;box-shadow:0 0 0 1px var(--line)}
.swatch:hover{transform:scale(1.1)}
.swatch[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 3px rgba(var(--acc),.35)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.seg button{background:none;border:0;color:var(--mut);padding:9px 16px;font:inherit;cursor:pointer}
.seg button[aria-pressed=true]{background:rgba(var(--acc),.16);color:var(--ink);font-weight:600}
.dispgrid{display:grid;grid-template-columns:140px 1fr;gap:14px 18px;align-items:center}
@media(max-width:640px){.dispgrid{grid-template-columns:1fr;gap:6px}.dispgrid>b{margin-top:10px}}
@media(max-width:900px){
  table.list:not(.rc){display:block;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
  .calnav{flex-wrap:wrap;gap:8px}.calnav form{flex:1 1 auto;min-width:0}
}
details.more>summary.btn{display:inline-flex;align-items:center;height:auto;min-height:40px;background:transparent}

/* Étape 31 — montants, campagnes promo */
.kpi b,.amt,td .nowrap,.nowrap,.money{white-space:nowrap}
td:has(.amt),td.num,.right{white-space:nowrap}
.idea{background:rgba(var(--acc),.08);border:1px solid rgba(var(--acc),.3);border-radius:12px;padding:10px 14px;margin:12px 0}
.promoform h3{margin-top:22px}
.choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin:8px 0 12px}
.choices.small{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.choice{position:relative;cursor:pointer}
.choice input{position:absolute;opacity:0}
.choice span{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;transition:border-color .2s,background .2s,transform .2s;color:var(--ink)}
.choice small{color:var(--mut)}
.choice:hover span{border-color:rgba(var(--acc),.5);transform:translateY(-1px)}
.choice input:checked+span{border-color:var(--accent);background:rgba(var(--acc),.12);box-shadow:0 0 0 3px rgba(var(--acc),.15)}
.choice input:focus-visible+span{outline:2px solid var(--accent)}
h1 .count{font:600 .8rem Inter,system-ui,sans-serif;vertical-align:middle;margin-left:8px;padding:3px 10px;border-radius:999px;background:rgba(var(--acc),.15);color:var(--accent2);border:1px solid rgba(var(--acc),.35)}
.statline{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;color:var(--mut)}
.statline b{color:var(--ink);font-size:1.1rem}
.chip{padding:4px 12px;border-radius:999px;border:1px solid var(--line);text-decoration:none;font-size:.82rem;color:var(--mut);transition:border-color .2s,color .2s}
.chip:hover{border-color:rgba(var(--acc),.6);color:var(--ink)}
.promoform label,.promoform label span,.choice,.choice *{text-transform:none;letter-spacing:0}
.choice b{font-size:.95rem;font-weight:600}.choice small{font-size:.8rem}
.promoform label.full,.promoform label{font-size:.9rem}
.choices.small .choice span{align-items:center;text-align:center;justify-content:center;min-height:48px}

/* Étape 33 — montants jamais coupés sur mobile (la règle bureau 2rem écrasait la règle mobile) */
.kpi{min-width:0}
@media(max-width:700px){
  .kpis.big{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis.big .kpi{padding:14px 14px}
  .kpis.big .kpi b{font-size:clamp(1.05rem,6vw,1.5rem);letter-spacing:-.02em;max-width:100%}
  .kpis.big .kpi:nth-child(n+3) b{font-size:clamp(1rem,5.2vw,1.3rem)}
  .kpis.big .kpi span{font-size:.62rem;letter-spacing:.05em}
}
@media(max-width:360px){.kpis.big .kpi b{font-size:1.05rem}}

/* Étape 33 — encarts et rectangles plus compacts sur mobile */
@media(max-width:700px){
  main .card{padding:14px!important;border-radius:14px}
  main .card h2{font-size:1.02rem;margin:0 0 8px}
  main table.rc tr{padding:8px 12px;margin:0 0 8px;border-radius:12px}
  main table.rc td{padding:2px 0;font-size:.88rem}
  main table.rc td:first-child{font-size:.98rem;padding-bottom:2px}
  .tablewrap{padding:8px!important}
  .grid2,.kpis,.kpis.big{gap:10px}
  .kpis.big .kpi{padding:11px 13px}
  .statline{gap:6px;font-size:.88rem;margin-bottom:8px}.statline .chip{padding:4px 10px;font-size:.78rem}
  /* filtres : 2 colonnes, champs bas */
  form.filters{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;padding:10px!important}
  form.filters input[type=search]{grid-column:1/-1;flex:none}
  form.filters input,form.filters select,form.filters .btn{min-height:40px;padding:6px 10px;font-size:.9rem;width:100%;min-width:0;flex:none}
  form.filters .btn{min-height:40px}
  /* fiche client = 2 lignes : nom + statut, contact + activité */
  main table.rc.clients-t tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px 10px;align-items:center;padding:9px 12px}
  main table.rc.clients-t td{display:block;padding:0;text-align:left;min-width:0}
  main table.rc.clients-t td::before{display:none}
  main table.rc.clients-t td:nth-child(1){grid-column:1;grid-row:1;font-size:.98rem;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  main table.rc.clients-t td:nth-child(4){grid-column:2;grid-row:1;justify-self:end}
  main table.rc.clients-t td:nth-child(3){grid-column:1;grid-row:2;color:var(--mut);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  main table.rc.clients-t td:nth-child(3) br{display:none}
  main table.rc.clients-t td:nth-child(2){grid-column:2;grid-row:2;justify-self:end}
  main table.rc.clients-t td:nth-child(5){display:none}
  main table.rc.clients-t .tag{font-size:.72rem;padding:2px 8px}
}

/* Étape 33 — choix de la période (Total + années), défilement horizontal sur mobile */
.yearnav{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 0 14px;padding:2px 0}
.yearnav::-webkit-scrollbar{display:none}
.yearnav a{flex:0 0 auto;padding:7px 16px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--mut);font-weight:600;font-size:.9rem;text-decoration:none}
.yearnav a.on{background:linear-gradient(180deg,rgba(var(--acc),.28),rgba(var(--acc),.14));border-color:rgba(var(--acc),.6);color:var(--text,inherit)}
fieldset.newclient{border:1px dashed rgba(var(--acc),.5);border-radius:12px;padding:10px 12px;margin:0}
fieldset.newclient legend{color:var(--mut);font-size:.8rem;padding:0 6px}
fieldset.newclient[hidden]{display:none}
@media(max-width:700px){fieldset.newclient .formgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  fieldset.newclient input,fieldset.newclient select{min-height:40px;padding:6px 10px;font-size:.9rem}fieldset.newclient label{font-size:.7rem}}
.as-state.ok{color:#5fd39a}.as-state.warn{color:#e0a64a}
.inlinebox input.bad,.inlinebox select.bad,.inlinebox textarea.bad,form[data-autosave] .bad{border-color:#e0a64a}
.as-bar{margin:0 0 6px;font-size:.85rem}
@media(max-width:700px){main .inlinebox .formgrid.inl{display:grid;grid-template-columns:1fr 1fr;gap:8px}main .inlinebox .formgrid.inl .full{grid-column:1/-1}
  main .inlinebox .inl input,main .inlinebox .inl select,main .inlinebox .inl textarea{min-height:40px;padding:6px 10px;font-size:.9rem}main .inlinebox .inl label{font-size:.7rem}}
.inlinebox [hidden]{display:none!important}

/* Étape 33 — statistiques de la fiche client */
.kpis.mini2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}
.kpis.mini2 .kpi{padding:12px 14px}
.kpis.mini2 .kpi b{font-size:1.35rem}
.kpis.mini2 .kpi span{font-size:.64rem;line-height:1.3}
.kpi.warnk b{color:#e0a64a}
.ybars{margin-top:10px}
@media(max-width:700px){.kpis.mini2{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpis.mini2 .kpi{padding:10px 12px}.kpis.mini2 .kpi b{font-size:clamp(1rem,5.4vw,1.25rem)}}
.ybars .bars{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:8px;align-items:center;margin:4px 0}
.ybars .bars>div{min-width:0}
@media (max-width:760px){.ybars .bars{grid-template-columns:48px minmax(0,1fr) auto}.ybars .bars>span:last-child{grid-column:auto;font-size:.74rem}}
.kpi .sub{display:block;margin-top:8px;padding-top:7px;border-top:1px solid var(--line);font-size:.78rem;color:var(--mut);text-transform:none;letter-spacing:0}
.kpi .sub b{color:var(--accent);font-size:.95rem;font-weight:600}
@media(max-width:700px){.kpi .sub{font-size:.72rem;margin-top:6px;padding-top:5px}.kpi .sub b{font-size:.85rem}}

/* Étape 33 — profil à compléter */
.tag.todo{background:rgba(224,166,74,.14);border-color:rgba(224,166,74,.55);color:#e0a64a;font-size:.68rem;padding:2px 8px;vertical-align:middle}
.card.tocomplete{border-color:rgba(224,166,74,.5);display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 14px;margin-bottom:12px}
.card.tocomplete p{flex:1 1 260px;font-size:.88rem}
.chip.on{border-color:rgba(var(--acc),.7);color:var(--accent)}

/* Étape 33 — historique et tri des devis / factures */
.vuetabs{display:flex;gap:6px;margin:0 0 10px}
.vuetabs a{padding:7px 16px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--mut);font-weight:600;font-size:.88rem;text-decoration:none}
.vuetabs a.on{background:linear-gradient(180deg,rgba(var(--acc),.28),rgba(var(--acc),.14));border-color:rgba(var(--acc),.6);color:var(--text,inherit)}
.sortlink{color:inherit;text-decoration:none;white-space:nowrap}.sortlink.on{color:var(--accent)}
.listmeta{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:6px 0 10px}
.listmeta form{margin:0}
.memark span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accent,#c9a24b);color:#1a1405;font-size:1.1rem;font-weight:800;border:3px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.45)}
@media(max-width:700px){
  .card.chips{padding:8px 10px!important;gap:6px}.card.chips .btn.small{min-height:32px;padding:4px 12px;font-size:.8rem}
  .vuetabs a{padding:6px 14px;font-size:.84rem}
  main table.rc.doclist tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px 10px;align-items:center;padding:9px 12px}
  main table.rc.doclist td{display:block;padding:0;text-align:left;min-width:0}
  main table.rc.doclist td::before{display:none}
  main table.rc.doclist td:nth-child(1){grid-column:1;grid-row:1;font-size:.95rem;padding:0}
  main table.rc.doclist td:nth-child(1) br,main table.rc.doclist td:nth-child(1) .muted{display:none}
  main table.rc.doclist td:nth-child(6){grid-column:2;grid-row:1;justify-self:end}
  main table.rc.doclist td:nth-child(2){grid-column:1;grid-row:2;color:var(--mut);font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  main table.rc.doclist td:nth-child(5){grid-column:2;grid-row:2;justify-self:end;font-weight:600;font-size:.92rem}
  main table.rc.doclist td:nth-child(3){grid-column:1;grid-row:3;color:var(--mut);font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  main table.rc.doclist td:nth-child(4){grid-column:2;grid-row:3;justify-self:end;color:var(--mut);font-size:.76rem}
  main table.rc.doclist .tag{font-size:.7rem;padding:2px 8px}
}

/* Étape 33 — graphiques compacts de l'accueil (barres CSS, plus d'infos dans moins de place) */
.minis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:8px 0 14px}
@media(max-width:1200px){.minis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.minis{grid-template-columns:1fr;gap:8px}}
.card.mini{padding:12px 14px!important}
.card.mini h2{font-size:.9rem;margin:0 0 8px;display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.card.mini h2 .muted{font-size:.72rem;font-weight:400}
.vbars{display:flex;align-items:flex-end;gap:6px;height:92px}
.vbars>div{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:2px;position:relative}
.vbars i{display:block;width:100%;max-width:26px;min-height:2px;background:var(--accent);border-radius:4px 4px 2px 2px;opacity:.9}
.vbars i.gold{background:linear-gradient(180deg,#e6c56b,#b8892a)}
.vbars b{font-size:.7rem;font-weight:600;order:-1}
.vbars span{font-size:.6rem;color:var(--mut);white-space:nowrap}
.hbars{display:flex;flex-direction:column;gap:5px}
.hbars a{display:grid;grid-template-columns:92px minmax(0,1fr) 22px;gap:8px;align-items:center;text-decoration:none;color:inherit;font-size:.76rem}
.hbars a>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--mut)}
.hbars u{display:block;height:7px;border-radius:4px;background:rgba(255,255,255,.06);text-decoration:none;overflow:hidden}
html[data-theme=light] .hbars u{background:rgba(0,0,0,.07)}
.hbars u i{display:block;height:100%;background:var(--accent);border-radius:4px}
.hbars b{text-align:right;font-size:.76rem}
.card.mini .chips{gap:5px}.card.mini .chip{font-size:.68rem;padding:3px 8px}
.toplist{margin-top:8px;border-top:1px solid var(--line);padding-top:6px;display:flex;flex-direction:column;gap:3px}
.toplist a{display:flex;justify-content:space-between;gap:8px;text-decoration:none;color:inherit;font-size:.78rem}
.toplist a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Étape 33 — « À faire maintenant » : réduire en pastille / masquer 4 h */
.todaywrap{position:relative}
.todaywrap.gone{display:none}
.todaywrap .tcctl{position:absolute;top:8px;right:8px;display:flex;gap:4px;z-index:2}
.todaywrap .tcctl button{width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:rgba(0,0,0,.25);color:var(--mut);font-size:.85rem;line-height:1;cursor:pointer;padding:0}
.todaywrap .tcctl button:hover{color:var(--text,#fff);border-color:rgba(var(--acc),.6)}
.todaywrap .tchd{padding-right:70px}
.todaypill{display:inline-flex;gap:6px;align-items:center;padding:6px 14px;border-radius:999px;border:1px solid rgba(var(--acc),.55);background:linear-gradient(180deg,rgba(var(--acc),.22),rgba(var(--acc),.10));color:inherit;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}
.todaypill[hidden],.todaywrap [hidden]{display:none!important}
.todaypill b{background:var(--accent);color:var(--accent-ink,#1a1405);border-radius:999px;min-width:20px;padding:0 6px;text-align:center;font-size:.76rem}

/* Étape 33 : bouton Retour + grande barre de recherche sur ordinateur */
.backbtn{display:inline-flex;align-items:center;gap:4px;padding:7px 12px 7px 8px;border-radius:999px;border:1px solid var(--line);color:var(--txt,inherit);text-decoration:none;font-size:.88rem;flex:none;background:rgba(var(--acc),.06)}
.backbtn:hover{background:rgba(var(--acc),.16);border-color:rgba(var(--acc),.4)}
.topsearch{display:none}
@media(min-width:861px){
 .topsearch{display:flex;align-items:center;gap:10px;flex:1 1 380px;max-width:620px;min-width:260px;margin:0 auto 0 18px;padding:11px 16px;border-radius:12px;border:1px solid var(--line);background:rgba(var(--acc),.05);color:var(--mut);font:inherit;font-size:.95rem;cursor:text;text-align:left}
 .topsearch:hover,.topsearch:focus-visible{border-color:rgba(var(--acc),.5);background:rgba(var(--acc),.1);color:var(--txt,inherit)}
 .topsearch span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .topsearch kbd{font:600 .72rem Inter,system-ui,sans-serif;padding:2px 7px;border-radius:6px;border:1px solid var(--line);color:var(--mut)}
 .top .actions .srchbtn{display:none}
 .top h1{flex:none;max-width:34%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .palbox{width:min(820px,100%)}
 #palq{font-size:1.2rem;padding:20px 22px}
}
@media(max-width:860px){.backbtn span{display:none}.backbtn{padding:8px}}

.evjump{display:inline-flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.cal .ev.focus{outline:2px solid var(--accent);outline-offset:1px;box-shadow:0 0 0 4px rgba(var(--acc),.25);animation:evPulse 1.6s ease 2}
@keyframes evPulse{50%{box-shadow:0 0 0 8px rgba(var(--acc),.05)}}
@media(max-width:700px){.evjump{margin-left:0;width:100%}.evjump .btn{flex:1;text-align:center}}

/* Étape 33 : objectifs & « SMIC avec les prestations » */
.bar{height:10px;border-radius:99px;background:rgba(var(--acc),.12);overflow:hidden}
.bar.lg{height:14px}
.bar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,rgba(var(--acc),.6),var(--accent));transition:width .6s cubic-bezier(.2,.8,.2,1)}
.smic-lead{font-size:1.05rem;margin:.2rem 0 1rem}
.smic-bars{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 26px}
.pb .pbh{display:flex;justify-content:space-between;gap:10px;font-size:.88rem;margin-bottom:5px;color:var(--mut)}
.pb .pbh b{color:inherit;white-space:nowrap}
.pb.big{grid-column:1/-1}.pb.big .pbh{font-size:1rem;color:inherit}
.smicmonths{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;height:90px;margin:18px 0 6px;align-items:end}
.sm{display:flex;flex-direction:column;justify-content:flex-end;height:100%;align-items:center;gap:4px;font-size:.66rem;color:var(--mut)}
.sm i{display:block;width:100%;border-radius:6px 6px 2px 2px;background:rgba(var(--acc),.28);min-height:3px}
.sm.ok i{background:var(--accent)}.sm.cur i{outline:1px dashed var(--accent);outline-offset:1px}
.smicnote{font-size:.82rem;margin:10px 0 0}
.smicset summary{display:block!important;margin-top:8px}
.goals{display:grid;gap:12px;margin-top:14px}
.goal{display:grid;gap:10px}.goal.done{opacity:.7}
.goalhd{display:flex;align-items:center;gap:10px}
.goaltitle{flex:1;min-width:0;font-weight:600;font-size:1.02rem;border:1px solid transparent!important;background:transparent!important}
.goaltitle:hover,.goaltitle:focus{border-color:var(--line)!important}
.goaldue{max-width:150px}.goaldue.late{border-color:#d9534f!important}
.goalpct{font-size:1.1rem;min-width:3.4ch;text-align:right}
.goalslide{display:flex;gap:10px;align-items:center;font-size:.85rem;color:var(--mut)}.goalslide input{flex:1}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.steps li{display:flex;justify-content:space-between;align-items:center;gap:8px}
.stepadd{margin:0;padding:0;border:0;background:none}
.smicmini .bar{margin:8px 0 4px}
@media(max-width:700px){.smic-bars{grid-template-columns:1fr}.goalhd{flex-wrap:wrap}.goaltitle{flex-basis:70%}.goaldue{max-width:none;flex:1}}

/* Étape 33 : personnalisation des pages (déplacer / masquer les encarts) */
.custbar{display:flex;justify-content:flex-end;margin:0 0 8px}
.reorder{display:grid;gap:14px}
.reorder>.card,.reorder>section,.reorder>details{margin:0}
[data-id].is-hidden{display:none!important}
body.cust-on [data-id].is-hidden{display:block!important;opacity:.35;filter:grayscale(1)}
body.cust-on .cust-cont>[data-id]{outline:2px dashed rgba(var(--acc),.55);outline-offset:3px;border-radius:14px;position:relative}
body.cust-on .cust-cont>[data-id].dragging{opacity:.4}
.cust{display:none}
body.cust-on .cust{display:flex;align-items:center;gap:6px;position:sticky;top:60px;z-index:6;margin:0 0 8px;padding:6px 8px;border-radius:10px;background:var(--card2,var(--card));border:1px solid rgba(var(--acc),.45);font-size:.82rem}
body.cust-on .cust b{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cust button{border:1px solid var(--line);background:transparent;color:inherit;border-radius:8px;padding:5px 9px;cursor:pointer;font:inherit;font-size:.8rem}
.cust button:hover{background:rgba(var(--acc),.18)}
.cgrip{cursor:grab;font-size:1.2rem;padding:0 4px;touch-action:none}
body.cust-on .cust-cont>[data-id] a{pointer-events:none}
body.cust-on .cust-cont>[data-id] .cust button{pointer-events:auto}
#custbtn.on{background:var(--accent);color:#000}
body.cust-on #custreset{display:inline-flex}
#custreset{display:none}
body.cust-on .cust-cont>a[data-id]{pointer-events:none}body.cust-on .cust-cont>a[data-id] .cust button{pointer-events:auto}
.smicmini{display:block;text-decoration:none;color:inherit}
.smicmini:hover{border-color:rgba(var(--acc),.5)}
.smicmini .pbh{display:flex;justify-content:space-between;gap:10px;margin-bottom:2px}
.smicmini small{text-decoration:none;display:block}
.goalslide{text-transform:none!important;letter-spacing:0!important;justify-content:flex-start}
.goalslide input{accent-color:var(--accent);padding:0;border:0;background:none}
.reorder>*{min-width:0}
body.cust-on .cust{grid-column:1/-1;flex:0 0 100%;box-sizing:border-box;width:100%}
label.goalslide{flex-direction:row;align-items:center;text-transform:none;letter-spacing:0;font-size:.85rem}.goaltitle{font-size:.98rem}@media(max-width:700px){.goaltitle{flex-basis:calc(100% - 50px)}}

/* Correctif : les encarts ne « sautent » plus au clic / au toucher (le survol soulevait toutes les cartes, et restait collé sur mobile) */
*{-webkit-tap-highlight-color:transparent}
.card:hover,.kcard:hover,.kpi:hover,.stat:hover,.tile:hover,.todaycard:hover,a.kpi:hover{transform:none;box-shadow:none;border-color:var(--line)}
@media(hover:hover) and (pointer:fine){
 a.kpi:hover,a.card:hover,a.tile:hover,.kcard:hover,.todaycard:hover{transform:translateY(-2px);border-color:rgba(var(--acc),.55);box-shadow:0 12px 28px -14px rgba(0,0,0,.8)}
}
a.kpi:active,a.card:active,a.tile:active,.kcard:active,.todaycard:active{transform:scale(.985)}
.card,.kpi{transition:border-color .2s,background .2s}
body.cust-on .card:hover,body.cust-on [data-id]:hover{transform:none!important}

.matbar{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.matbar .inlineform{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:0;border:0;background:none}
.matbar select{width:auto;min-width:0}
.catchips{display:flex;gap:6px;flex-wrap:wrap}
.chip{padding:5px 11px;border-radius:999px;border:1px solid var(--line);font-size:.82rem;text-decoration:none;color:var(--mut)}
.chip.on,.chip:hover{border-color:rgba(var(--acc),.6);background:rgba(var(--acc),.14);color:inherit}
.sortlink{color:inherit;text-decoration:none}.sortlink.on{color:var(--accent)}
tfoot td{border-top:1px solid var(--line);padding-top:10px}
.matbar label.inlinesel{flex-direction:row;align-items:center;gap:8px;text-transform:none;letter-spacing:0}.matbar select{flex:0 0 auto;width:auto!important}

.toplogo{display:none;flex:none;line-height:0}
.toplogo img{width:26px;height:26px;object-fit:contain;display:block}
@media(max-width:860px){.toplogo{display:block}}

.rv-remplacer{background:rgba(217,83,79,.18)!important;color:#ff8f8b!important;border-color:rgba(217,83,79,.5)!important}
.rv-bientot{background:rgba(240,173,78,.16)!important;color:#f0ad4e!important;border-color:rgba(240,173,78,.45)!important}
.rv-surveiller{background:rgba(91,192,222,.14)!important;color:#7fd0e8!important;border-color:rgba(91,192,222,.4)!important}
.rv-ok,.rv-garder{background:rgba(92,184,92,.14)!important;color:#7bd17b!important;border-color:rgba(92,184,92,.4)!important}
.rvwhy{font-size:.74rem}

.potcard{display:block;text-decoration:none;color:inherit}
.potcard .pbh{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}
.potrow{display:flex;gap:18px;flex-wrap:wrap;margin:4px 0 6px}.potc b{color:#7bd17b}.potp b{color:var(--accent)}
.potbar{display:flex;gap:8px 22px;flex-wrap:wrap;align-items:center;padding:12px 16px}.smicpot{margin:10px 0 0;font-size:.92rem}
.quickproj{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}.quickproj input,.quickproj select{flex:1 1 140px;min-width:0}.quickproj input[name=title]{flex:2 1 220px}
.newact{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:6px}.newact input{flex:1 1 160px;min-width:0}.na-msg{font-size:.8rem}

.dupbanner{display:block;text-decoration:none;color:inherit;padding:12px 16px;border-color:rgba(var(--acc),.5)}
.duprow{display:flex;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line);flex-direction:row;color:inherit;text-transform:none;letter-spacing:0;font-size:.95rem}
.duprow .dupmain{flex:1;min-width:0}.dupgroup .btnrow{margin-top:12px}

.scchips{display:flex;flex-wrap:wrap;gap:8px}
.scchip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:rgba(var(--acc),.07);overflow:hidden}
.scchip a{padding:7px 8px 7px 14px;text-decoration:none;color:inherit;font-size:.9rem;max-width:42vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scchip:hover{border-color:rgba(var(--acc),.55)}
.scx{border:0;background:none;color:var(--mut);cursor:pointer;padding:7px 11px 7px 4px;font-size:1rem;line-height:1}
.scx:hover{color:#ff8f8b}
.sctip{margin:8px 0 0;font-size:.8rem}
.pinpop{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:300;background:var(--card);border:1px solid rgba(var(--acc),.55);border-radius:14px;padding:12px 14px;box-shadow:0 20px 50px -12px #000;display:flex;flex-direction:column;gap:8px;max-width:min(92vw,420px);animation:lpIn .15s ease both}
.pinpop b{font-size:.85rem;color:var(--mut);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pinpop .pinbtns{display:flex;gap:8px}.pinpop .pinbtns .btn{flex:1}
main a[href^="/"],.side a,.tabbar a{-webkit-touch-callout:none}
.pinpop{left:12px!important;right:12px!important;transform:none!important;width:fit-content;max-width:min(92vw,440px);margin:0 auto}
.pinpop .pinbtns .btn{white-space:nowrap;padding:10px 14px}
.pinpop{width:min(92vw,440px)!important;max-width:none!important}
.pinpop .pinbtns .btn{white-space:normal;padding:10px 12px}

/* réseaux sociaux / logiciels / formations */
.rskpis{display:grid!important;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 8px}
.rskpis .kpi b{font-size:1.15rem}
.rscontent{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;display:grid;gap:8px}
.rscontent.done{opacity:.8}
.rshead{display:flex;gap:8px;align-items:center}.rshead .goaltitle{flex:1;min-width:0}.rshead select{flex:0 0 auto;width:auto}
.rsmeta{display:flex;gap:8px;flex-wrap:wrap}.rsmeta select,.rsmeta label{flex:1 1 140px;min-width:0}
.rsmore summary{display:block!important;font-size:.85rem}
.idea{border-top:1px solid var(--line);padding:12px 0}
.ideahead{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:flex-start}
.ideahook{margin:6px 0 2px;font-style:italic}.ideacta{margin:4px 0 8px;font-size:.9rem}
.tips{margin:0 0 8px;padding-left:20px;display:grid;gap:6px}
@media(max-width:700px){.rskpis{grid-template-columns:repeat(2,1fr)}}
.soft-h{margin:16px 0 8px;font-size:.95rem;color:var(--mut);font-weight:600}
.tag.warn{background:rgba(255,190,80,.15);color:#ffcf7a;border-color:rgba(255,190,80,.4)}
.rskpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 8px}
.rsk{display:flex;flex-direction:column;gap:4px;padding:12px 14px;min-width:0;border:1px solid var(--line);border-radius:12px;background:rgba(var(--acc),.04)}
.rsk b{display:block;font-size:1.25rem;line-height:1.2;overflow-wrap:anywhere;font-weight:600}
.rsk span{display:block;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--mut);line-height:1.25}
.rsk.wide{grid-column:1/-1}.rsk.wide b{font-size:.98rem}

/* Étape 34 : encarts discrets, bouton de personnalisation en haut, appli vivante */
.custtop.on{background:var(--accent);color:var(--accent-ink,#000);border-color:transparent}
.custbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin:0 0 10px;padding:8px 12px;border:1px dashed rgba(var(--acc),.5);border-radius:12px;background:rgba(var(--acc),.07)}
.custbar[hidden]{display:none}
.custbar .custhelp{flex:1 1 220px;font-size:.82rem;color:var(--mut)}
body.cust-on #custreset{display:inline-flex}
.tipfold{display:inline-block;position:relative;vertical-align:middle;margin-left:6px;font-weight:400}
.tipfold summary{list-style:none;cursor:pointer;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);color:var(--mut);font-size:.78rem;line-height:1;opacity:.7;transition:opacity .2s,transform .2s}
.tipfold summary::-webkit-details-marker{display:none}
.tipfold summary:hover,.tipfold[open] summary{opacity:1;border-color:rgba(var(--acc),.6);color:var(--accent)}
.tipfold[open] summary{transform:rotate(180deg)}
.tipfold p{position:absolute;left:0;top:30px;z-index:20;width:min(300px,78vw);margin:0;padding:12px 14px;border-radius:12px;background:var(--card2,var(--card));border:1px solid rgba(var(--acc),.4);box-shadow:0 16px 40px -14px #000;font-size:.82rem;font-weight:400;line-height:1.45;color:var(--text,inherit);animation:lpIn .2s ease both}
.reorder>details.fold{margin:0}
.fold summary .muted{font-weight:400;font-size:.82rem}
/* mouvement */
.ambient{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.ambient i{position:absolute;width:62vmax;height:62vmax;border-radius:50%;background:radial-gradient(circle,rgba(var(--acc),.10),transparent 62%);will-change:transform}
.ambient i:nth-child(1){left:-18vmax;top:-22vmax;animation:lpDrift1 38s ease-in-out infinite alternate}
.ambient i:nth-child(2){right:-24vmax;bottom:-30vmax;background:radial-gradient(circle,rgba(var(--acc),.07),transparent 62%);animation:lpDrift2 46s ease-in-out infinite alternate}
html[data-theme=light] .ambient i{opacity:.55}
@keyframes lpDrift1{to{transform:translate(22vmax,14vmax) scale(1.15)}}
@keyframes lpDrift2{to{transform:translate(-20vmax,-12vmax) scale(.9)}}
.bar i,.hbars u i{transform-origin:left center;animation:lpGrowX 1s cubic-bezier(.2,.7,.2,1) .15s both}
.vbars>div>i{transform-origin:center bottom;animation:lpGrowY .9s cubic-bezier(.2,.7,.2,1) .2s both}
@keyframes lpGrowX{from{transform:scaleX(0)}}
@keyframes lpGrowY{from{transform:scaleY(0)}}
a.kpi,a.card,.todaycard,.idea,.rscontent{position:relative;transition:transform .18s ease-out,border-color .2s,box-shadow .25s}
a.kpi::after,a.card::after,.todaycard::after,.idea::after,.rscontent::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(var(--acc),.15),transparent 62%);opacity:0;transition:opacity .25s}
a.kpi:hover::after,a.card:hover::after,.todaycard:hover::after,.idea:hover::after,.rscontent:hover::after{opacity:1}
.tcn{animation:lpBeat 2.6s ease-in-out infinite}
@keyframes lpBeat{0%,70%,100%{transform:scale(1)}80%{transform:scale(1.18)}90%{transform:scale(1.04)}}
.fab::before{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid rgba(var(--acc),.7);animation:lpRing 3.2s ease-out infinite;pointer-events:none}
@keyframes lpRing{0%{transform:scale(1);opacity:.7}70%,100%{transform:scale(1.55);opacity:0}}
.toplogo img,.brand .logomark{transition:transform .25s linear}
.scchip{animation:lpPopIn .4s cubic-bezier(.2,.9,.3,1.25) backwards}
body.cust-on .cust-cont>[data-id]{animation:lpWiggle .55s ease-in-out infinite alternate}
@keyframes lpWiggle{from{transform:rotate(-.25deg)}to{transform:rotate(.25deg)}}
.confetti{position:fixed;inset:0;z-index:400;pointer-events:none;overflow:hidden}
.confetti i{position:absolute;width:8px;height:14px;border-radius:2px;opacity:0;animation:lpConf 1.5s cubic-bezier(.15,.7,.3,1) forwards}
@keyframes lpConf{0%{opacity:1;transform:translate(0,0) rotate(0)}70%{opacity:1}100%{opacity:0;transform:translate(var(--dx),calc(var(--dy) + 260px)) rotate(var(--r))}}
html[data-motion=off] .ambient,html[data-motion=off] .confetti{display:none}
@media(prefers-reduced-motion:reduce){.ambient i{animation:none}.fab::before{display:none}}
@media(max-width:860px){.top .actions .custtop{display:inline-grid!important}}
.top .actions .btn{white-space:nowrap}.topsearch{min-width:200px}
.tipok{display:block;margin-top:8px;border:1px solid var(--line);background:rgba(var(--acc),.1);color:inherit;border-radius:8px;padding:6px 10px;font:inherit;font-size:.78rem;cursor:pointer}
.tipok:hover{border-color:rgba(var(--acc),.6)}
.tipfold p{padding-bottom:12px}
.todocol:has(>.todaywrap.gone){display:none}
.todocol>.todaycard,.todocol>.todaywrap{height:100%}
.shortcuts{padding:12px 14px}
.shortcuts h2{font-size:.95rem;margin:0 0 8px}
.shortcuts .scchip a{padding:5px 6px 5px 11px;font-size:.84rem}
.shortcuts .scx{padding:5px 9px 5px 3px}
.shortcuts .scchips{gap:6px}

/* accueil en petites tuiles : deux grands encarts seulement (À faire, Projets & planning) */
[data-reorder=home2]{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}
[data-reorder=home2]>*{grid-column:1/-1}
[data-reorder=home2]>.mt{grid-column:auto}
@media(min-width:1200px){[data-reorder=home2]>.todocol,[data-reorder=home2]>.shortcuts{grid-column:span 3}}
.mt{display:flex!important;flex-direction:column;gap:4px;padding:12px 14px!important;min-height:98px;text-decoration:none;color:inherit;min-width:0}
.mt>span{order:1;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin:0!important;line-height:1.25}
.mt>b,.kpi.mt>b{order:2;font-size:1.3rem;line-height:1.15;overflow-wrap:anywhere}
.mt .bar{order:3;height:6px;margin:2px 0}
.mt .sub{order:4;margin-top:auto!important;padding:0!important;border:0!important;font-size:.7rem;color:var(--mut);line-height:1.3}
.mt .sub b{font-size:inherit!important;font-weight:600}
.mt.smicmini .bar{display:block}
.agenda .card{padding:14px 16px}
.agenda .row{padding:7px 0}
.shortcuts{align-self:start}
[data-reorder=home2]>details.fold{border:1px solid var(--line);border-radius:var(--r);background:rgba(var(--acc),.03);padding:0 14px}
[data-reorder=home2]>details.fold>summary{display:block!important;padding:12px 2px}
[data-reorder=home2]>details.fold[open]{padding-bottom:14px}
[data-reorder=home2]>details.fold>summary:hover{color:var(--accent2)}

/* effets « pop » : apparition avec rebond + léger agrandissement au survol (souris ou stylet) */
@keyframes lpPopIn{0%{opacity:0;transform:scale(.84) translateY(10px)}60%{opacity:1;transform:scale(1.045) translateY(-2px)}100%{opacity:1;transform:none}}
[data-reorder=home2]>.mt{animation:lpPopIn .5s cubic-bezier(.2,.9,.3,1.2) backwards}
[data-reorder=home2]>.mt:nth-child(3){animation-delay:.04s}[data-reorder=home2]>.mt:nth-child(4){animation-delay:.08s}[data-reorder=home2]>.mt:nth-child(5){animation-delay:.12s}[data-reorder=home2]>.mt:nth-child(6){animation-delay:.16s}[data-reorder=home2]>.mt:nth-child(7){animation-delay:.2s}[data-reorder=home2]>.mt:nth-child(8){animation-delay:.24s}[data-reorder=home2]>.mt:nth-child(9){animation-delay:.28s}[data-reorder=home2]>.mt:nth-child(10){animation-delay:.32s}[data-reorder=home2]>.mt:nth-child(11){animation-delay:.36s}[data-reorder=home2]>.mt:nth-child(12){animation-delay:.4s}[data-reorder=home2]>.mt:nth-child(13){animation-delay:.44s}
.pinpop,.sheetbox,.tipfold p,.flash,#pal .palbox,.newact{animation:lpPopIn .35s cubic-bezier(.2,.9,.3,1.25) backwards!important}
.btn:active,.vbtn:active,.chip:active,.scchip:active{transform:scale(.94)!important;transition-duration:.08s}
@media (hover:hover){
 .side nav a{transform-origin:left center;transition:transform .2s cubic-bezier(.3,1.5,.5,1),background .15s,color .15s}
 .side nav a:hover{transform:scale(1.06) translateX(3px)}
 .side nav a:hover svg,.side nav a:hover .ic{transform:scale(1.18) rotate(-6deg)}
 .side nav a svg,.side nav a .ic{transition:transform .2s cubic-bezier(.3,1.6,.5,1)}
 .tabbar a:hover{transform:scale(1.1)}
 .tabbar a{transition:transform .2s cubic-bezier(.3,1.5,.5,1)}
 .vbtn:hover,.gear:hover,.btn:hover{transform:scale(1.07)}
 .vbtn,.gear,.btn{transition:transform .18s cubic-bezier(.3,1.6,.5,1),border-color .15s,background .15s,color .15s}
 .scchip:hover,.chip:hover,.catchips .chip:hover{transform:scale(1.07)}
 .scchip,.chip{transition:transform .18s cubic-bezier(.3,1.6,.5,1),border-color .15s}
 a.kpi:hover,a.card:hover,.todaycard:hover,.mt:hover{transform:translateY(-3px) scale(1.035);z-index:2;box-shadow:0 18px 38px -16px rgba(0,0,0,.85),0 0 0 1px rgba(var(--acc),.3)}
 .idea:hover,.rscontent:hover{transform:scale(1.012)}
 .row:hover{transform:translateX(3px)}
 .row{transition:transform .15s ease}
}
body.cust-on .mt:hover,body.cust-on .side nav a:hover{transform:none!important}

/* accueil : « À faire » et « Raccourcis » côte à côte dès que la barre latérale est visible */
@media(min-width:861px){
 [data-reorder=home2]{grid-template-columns:repeat(4,1fr)}
 [data-reorder=home2]>*{grid-column:1/-1}
 [data-reorder=home2]>.mt{grid-column:span 1}
 [data-reorder=home2]>.todocol,[data-reorder=home2]>.shortcuts{grid-column:span 2}
}
@media(min-width:1180px){
 [data-reorder=home2]{grid-template-columns:repeat(6,1fr)}
 [data-reorder=home2]>.todocol,[data-reorder=home2]>.shortcuts{grid-column:span 3}
}

@media(min-width:861px) and (max-width:1250px){.topsearch{min-width:120px!important;margin-left:10px}.topsearch kbd{display:none}.top .actions{gap:6px}.top .actions .btn{padding:8px 12px;font-size:.85rem}.top h1{font-size:1.35rem}}

/* Étape 38 : plafonds, relances, liens suivis */
.plafrow{margin:10px 0}.plafhd{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.plafbar{height:10px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:4px}
.plafbar i{display:block;height:100%;border-radius:99px;background:var(--accent,#7c5cff);transition:width .6s ease}
.plafrow.info .plafbar i{background:#4cc3ff}.plafrow.warn .plafbar i{background:#ffb347}.plafrow.danger .plafbar i{background:#ff5d6c}
.relance .rshead{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}
.newclient{border:1px dashed var(--line,rgba(255,255,255,.2));border-radius:12px;padding:8px 12px}.newclient>summary{cursor:pointer;color:var(--accent2,var(--accent))}
.linkout{font-size:.85rem}

/* Étape 39 : carte contenue (ne passe plus devant le menu / la barre du bas), pages sans flash blanc */
#map,.leaflet-container{position:relative;z-index:0;isolation:isolate}
html{background:#0b0c0f}html[data-theme=light]{background:#f3f4f6}
html.noanim main>*,html.noanim main>.card,html.noanim main>section,html.noanim main>.kpis,html.noanim main>form{animation:none!important}
main>*,main>.card,main>section,main>.kpis,main>form{animation-duration:.32s}
.diagrow{display:flex;gap:12px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line)}.diagrow:first-of-type{border-top:0}
.diagico{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:rgba(255,255,255,.08)}
.diagrow.ok .diagico{background:rgba(60,190,110,.2);color:#6fe3a0}.diagrow.warn .diagico{background:rgba(255,179,71,.2);color:#ffb347}.diagrow.ko .diagico{background:rgba(255,93,108,.2);color:#ff7d8a}.diagrow.info .diagico{background:rgba(76,195,255,.18);color:#6fd0ff}
.diagfix{color:var(--accent2,#e3c47a)}
a.barlink{display:grid;text-decoration:none;color:inherit;border-radius:10px;transition:background .15s,transform .15s}a.barlink:hover{background:rgba(var(--acc),.08);transform:translateX(3px)}
.pausebar{margin:0 0 12px}

/* étape 41 : menu à 9 rubriques (onglets dans chaque rubrique), tout tient sans défiler */
.side{padding:14px 10px 10px}
.side .brand{padding:4px 8px 10px}
.side nav a{padding:10px 12px;font-size:.95rem}
.logout{margin-top:6px}
.hubtabs{margin-bottom:14px}
@media(max-height:700px) and (min-width:901px){.side nav a{padding:7px 12px}}
@media(max-width:900px){
 .side{width:min(300px,86vw);left:-310px}
 .collapsed .side{width:min(300px,86vw)}
 .side nav a,.collapsed .side nav a{padding:12px}
 .viewopts{flex-direction:row;gap:6px;padding:8px 0;margin-top:6px}
 .viewopts .vbtn.wide{flex:1;width:auto;height:36px;font-size:.78rem;padding:0 6px;justify-content:center;text-align:center;line-height:1.1}
}

/* étape 40 : planning, clic sur une case = ajouter un événement ou un projet */
.cal .calday{cursor:pointer;transition:border-color .15s,background .15s}
.cal .calday:hover{border-color:rgba(var(--acc),.6)}
.cal .calday:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.daypop{position:fixed;inset:0;z-index:70;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:16px}
.daypop[hidden]{display:none}
.daypopbox{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;width:min(460px,100%);max-height:92vh;overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.daypophd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.daypophd b{font-size:1.05rem}
.daytabs{display:flex;gap:6px;margin-bottom:12px}
.daytabs button{flex:1;padding:8px;border-radius:10px;border:1px solid var(--line);background:none;color:var(--mut);font:inherit;font-weight:600;cursor:pointer}
.daytabs button.on{background:rgba(var(--acc),.14);color:var(--accent2);border-color:rgba(var(--acc),.5)}
.daypane[hidden]{display:none}
@media(max-width:700px){.daypop{align-items:flex-end;padding:0}.daypopbox{border-radius:16px 16px 0 0;width:100%}}
.daypop{z-index:200}
@media(max-width:700px){.daypopbox{padding-bottom:calc(16px + env(safe-area-inset-bottom))}}

/* étape 40 : case « logo = bouton menu » du tableau de bord (à activer via Personnaliser) */
button.menutile{font:inherit;color:inherit;text-align:left;cursor:pointer;border:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px}
button.menutile img{height:26px;width:auto;max-width:100%}
button.menutile:hover{border-color:rgba(var(--acc),.55);transform:translateY(-2px)}
html[data-theme=light] button.menutile img{filter:brightness(.5) saturate(1.3)}
.card.ech.retard{border-color:rgba(255,93,108,.55)}.card.ech.bientot{border-color:rgba(255,179,71,.55)}
.hubtabs a{display:inline-flex;align-items:center;gap:7px}
.hubtabs a .ic{width:17px;height:17px;flex:none;opacity:.85}
.hubtabs a.on .ic{opacity:1}

.flash.pausebar{display:block}.flash.pausebar b{display:inline}

/* étape 43 : raccourcis en icônes seules, colorées quand il y a une info */
.scchips,.shortcuts .scchips{gap:8px}
.scchip,.shortcuts .scchip{position:relative;width:44px;height:44px;border-radius:14px;justify-content:center;overflow:visible;color:var(--mut)}
.scchip a,.shortcuts .scchip a{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0;max-width:none;border-radius:inherit;color:inherit}
.scchip a .ic{width:22px;height:22px}
.scchip.sig-info{color:rgb(var(--acc));border-color:rgba(var(--acc),.7);background:rgba(var(--acc),.16);box-shadow:0 0 0 3px rgba(var(--acc),.08)}
.scchip.sig-warn{color:var(--warn);border-color:rgba(224,138,85,.75);background:rgba(224,138,85,.16);box-shadow:0 0 0 3px rgba(224,138,85,.1)}
.scchip .sigdot{position:absolute;top:-3px;right:-3px;width:10px;height:10px;border-radius:50%;background:currentColor;border:2px solid var(--card);animation:sigpulse 2.2s ease-in-out infinite}
@keyframes sigpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
@media(prefers-reduced-motion:reduce){.scchip .sigdot{animation:none}}

/* étape 48 : titres des tuiles sur une seule ligne */
.kpi>span,.kpis .kpi span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* étape 50 : bulles déplaçables à la main (appui long puis glisser) */
.lp-held.lp-held{transform:var(--lpt,none)!important;position:relative;z-index:80;pointer-events:none;opacity:.94;transition:none!important;animation:none!important;box-shadow:0 22px 44px -12px #000,0 0 0 2px rgba(var(--acc),.7);cursor:grabbing;will-change:transform}
body.lp-holding{user-select:none;-webkit-user-select:none;cursor:grabbing}
.scchips a,a.kpi,a.card,.todaycard{-webkit-touch-callout:none}

/* étape 51 : albums photo */
.albumdrop{border:1.5px dashed var(--line,#3a3a44);border-radius:14px;padding:16px;text-align:center}
.albumdrop.over{border-color:rgb(var(--acc));background:rgba(var(--acc),.06)}
.albumgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.albumcell{position:relative;border-radius:10px;overflow:hidden;background:#0c0c10;border:1px solid var(--line,#2a2a32)}
.albumcell img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
.albumcap{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 6px;font-size:.78rem}
.albumcap span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.albumcell.pick{cursor:pointer;outline:2px solid transparent}
.albumcell.pick.on{outline-color:rgb(var(--acc))}
.albumcell .tick{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.55);border:2px solid #fff;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px}
.albumcell.on .tick{background:rgb(var(--acc));border-color:rgb(var(--acc));color:#111}
.albumcell.owned .tick{background:#2f9e5b;border-color:#2f9e5b}
.signwrap.wide{max-width:1100px}
.albumbar{position:sticky;bottom:0;z-index:5;background:var(--card,#16161c);border:1px solid var(--line,#2a2a32);border-radius:14px;padding:12px 14px;margin-top:12px;box-shadow:0 -10px 30px -12px #000}

/* étape 52 : pastilles sur les onglets de rubrique */
.hubtabs a{position:relative}
.tabbadge{font-style:normal;display:inline-flex;align-items:center;justify-content:center;min-width:9px;height:9px;padding:0 5px;margin-left:6px;border-radius:99px;font-size:.68rem;font-weight:700;line-height:1;background:rgb(var(--acc));color:#111}
.tabbadge:not(:empty){min-width:17px;height:17px}
.tabbadge.warn{background:#e8883a;color:#1a1208}

/* étape 52 : onglets de la fiche projet */
.ptabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.ptabs button{font:inherit;color:inherit;background:transparent;border:1px solid var(--line);border-radius:999px;padding:7px 16px;cursor:pointer}
.ptabs button.on{background:rgba(var(--acc),.18);border-color:rgba(var(--acc),.6);font-weight:600}
body:not(.js-ptabs) .ptabs{display:none}
[data-ptab][hidden]{display:none!important}

/* badges de palier de fidélité : liseré doré = pros (B2B), bleu nuit = particuliers (B2C), néon pourpre = artistes / DJ */
.fidbadge{display:inline-block;padding:1px 9px;border-radius:999px;font-weight:700;font-size:.82em;border:1px solid transparent;white-space:nowrap}
.fidbadge.fam-b2c{background:#17224a;color:#cdd8ff;border-color:#2c3d7d}
.fidbadge.fam-b2b{background:#17140b;color:#e3c47a;border-color:#d4af37}
.fidbadge.fam-art{background:#2a0a3d;color:#f0c8ff;border-color:#b026ff;box-shadow:0 0 8px rgba(176,38,255,.45)}
.fidbadge.vip{box-shadow:0 0 0 2px rgba(212,175,55,.55)}.fidbadge.fam-art.vip{box-shadow:0 0 8px rgba(176,38,255,.55),0 0 0 2px rgba(212,175,55,.55)}
/* cartes du thème sombre : fond plus clair que la page + liseré doré très fin */
html:not([data-theme=light]) .card,html:not([data-theme=light]) .kpi,html:not([data-theme=light]) .kcol{border-color:rgba(212,175,55,.15)}
/* volet latéral (aperçu client) */
.cl-row{cursor:pointer}.cl-row:hover{background:rgba(var(--acc),.07)}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100vw);background:var(--card);border-left:1px solid rgba(212,175,55,.25);box-shadow:-18px 0 40px -18px rgba(0,0,0,.6);z-index:60;padding:22px 20px;overflow-y:auto;animation:drin .18s ease-out}
@keyframes drin{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
.drawer-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:55}
.drawer-x{position:absolute;top:10px;right:12px;background:none;border:0;color:inherit;font-size:1.6rem;cursor:pointer;line-height:1}
body.drawer-open{overflow:hidden}
/* graphique compact des encaissements : une ligne, mois sous les barres */
.mchart{display:flex;gap:4px;align-items:flex-end;overflow-x:auto;padding-bottom:2px}
.mcol{flex:1 1 0;min-width:26px;display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:inherit;font-size:.68rem;border-radius:6px;padding:2px 0}
.mcol:hover{background:rgba(128,128,128,.15)}
.mbars{height:84px;width:100%;display:flex;gap:2px;align-items:flex-end;justify-content:center}
.mb{display:block;width:42%;max-width:16px;min-height:0;border-radius:3px 3px 0 0;background:var(--accent)}.mb.in{background:var(--ok,#2f7d4f)}.mb.out{background:var(--accent)}
.mb.hatch{background:repeating-linear-gradient(45deg,var(--ok,#2f7d4f) 0 4px,rgba(47,125,79,.45) 4px 8px);width:60%;max-width:22px}
.mlab{white-space:nowrap;color:var(--muted,#9aa0a6)}.mval{height:1em;font-size:.62rem;color:var(--muted,#9aa0a6)}
.mcol.nomonth{border-left:1px dashed rgba(128,128,128,.4);padding-left:2px;margin-left:2px}
@media (max-width:560px){.mval{display:none}.mlab{font-size:.6rem}.mcol{min-width:20px}}

/* ===== Encarts modulables : taille, fond et bordure choisis par l'utilisateur (mode Personnaliser 🎛 → 🎨 ou poignée ◢) ===== */
html:not([data-theme=light]) [data-sbg="0b0b0b"]{background:#0b0b0b!important}
html:not([data-theme=light]) [data-sbg="141414"]{background:#141414!important}
html:not([data-theme=light]) [data-sbg="1e1e1e"]{background:#1e1e1e!important}
[data-sbd="none"]{border-color:transparent!important;box-shadow:none!important}
[data-sbd="soft"]{border:1px solid rgba(212,175,55,.35)!important}
[data-sbd="gold"]{border:1px solid #d4af37!important;box-shadow:0 0 0 1px rgba(212,175,55,.18) inset,0 0 14px rgba(212,175,55,.12)!important}
[data-sh]{box-sizing:border-box}
.rz{display:none}
body.cust-on .cust-cont>[data-id]>.rz{display:block;position:absolute;right:-4px;bottom:-4px;width:22px;height:22px;cursor:nwse-resize;z-index:7;touch-action:none;border-radius:6px;background:rgba(var(--acc),.9);
 -webkit-mask:linear-gradient(135deg,transparent 52%,#000 53%);mask:linear-gradient(135deg,transparent 52%,#000 53%)}
body.cust-on [data-id].resizing{outline-color:var(--accent);user-select:none}
#cstyle{position:fixed;z-index:80;width:min(320px,calc(100vw - 16px));padding:12px;border-radius:14px;background:#141414;color:#eee;border:1px solid rgba(212,175,55,.45);box-shadow:0 14px 40px rgba(0,0,0,.55);font-size:.84rem}
#cstyle .cs-t{display:flex;align-items:center;gap:8px;margin-bottom:8px}
#cstyle .cs-t b{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#cstyle .cs-r{display:flex;align-items:center;gap:8px;margin:7px 0}
#cstyle .cs-r>span{flex:0 0 62px;color:#9aa0a6;font-size:.78rem}
#cstyle .cs-r>div{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
#cstyle button{border:1px solid #2c2c2c;background:#1e1e1e;color:#eee;border-radius:8px;padding:5px 9px;cursor:pointer;font:inherit;font-size:.8rem;min-height:30px}
#cstyle button:hover{border-color:#d4af37}
#cstyle button.on{border-color:#d4af37;box-shadow:0 0 0 1px #d4af37 inset;color:#d4af37}
#cstyle .sw{width:34px;height:30px;padding:0}
#cstyle .sw.def{background:transparent}
#cstyle .cs-h{min-width:54px;text-align:center;font-style:normal;color:#d4af37}
#cstyle .cs-x{margin-left:auto}
.tbar{height:8px;border-radius:5px;background:rgba(128,128,128,.18);overflow:hidden}.tbar i{display:block;height:100%;border-radius:5px}
.tbar .tin{background:var(--ok,#2f7d4f)}.tbar .tout{background:var(--accent)}
.neg{color:var(--danger,#d9534f)}
.adscore{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.74rem;font-weight:600;border:1px solid var(--line);cursor:help}
.adscore.chaud{background:rgba(47,125,79,.22);border-color:rgba(47,125,79,.6);color:#7fd3a0}
.adscore.bon{background:rgba(var(--acc),.18);border-color:rgba(var(--acc),.55);color:var(--accent)}
.adscore.moyen{color:var(--muted,#9aa0a6)}.adscore.faible{opacity:.6;text-decoration:line-through}
/* zones où les encarts ont une taille choisie : grille de 12 colonnes, les encarts remontent dans les vides (on peut en loger un sous un encart réduit) */
.lp-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;grid-auto-rows:8px;grid-auto-flow:row dense;column-gap:14px;row-gap:0;align-items:start}
.lp-grid>[data-id]{align-self:stretch;min-width:0;box-sizing:border-box;margin:0 0 14px!important}
.lp-grid>[data-id][data-sh]{align-self:start}
.lp-grid>.mt{min-height:112px!important}
.lp-grid>[data-id][data-sh]{overflow:auto}
.lp-grid>details.fold{align-self:start}
.lp-grid>.shortcuts{align-self:stretch}
@media(max-width:860px){.lp-grid>[data-id]{grid-column:1/-1!important}.lp-grid>[data-id][data-sh]{height:auto!important;overflow:visible!important}}
body.cust-on .cust{flex-wrap:wrap}
#cstyle .cs-rg{width:100%;accent-color:#d4af37}
/* menu-bouton à droite du sous-menu */
.subtabs.hubtabs,.subtabs{align-items:center}
.xmenu{position:relative;margin-left:auto;flex:0 0 auto}
.xmenu>summary{list-style:none;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.xmenu>summary::-webkit-details-marker{display:none}
.xmenu[open]>summary{background:var(--accent);color:var(--accent-ink,#000);border-color:transparent}
/* la barre d'onglets passe devant la colonne de droite (prochain tournage, météo) pour que le panneau « À faire maintenant » ouvert ne soit plus recouvert */
nav.hubtabs{position:relative;z-index:60}
.xpanel{position:fixed;z-index:70;min-width:260px;max-width:min(360px,calc(100vw - 16px));padding:6px;border-radius:14px;background:var(--card2,#1a1d23);border:1px solid rgba(var(--acc),.4);box-shadow:0 14px 40px rgba(0,0,0,.5)}
.xpanel form{margin:0}
.xitem{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:9px 12px;border-radius:10px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;text-decoration:none}
.xitem:hover,.xitem:focus-visible{background:rgba(var(--acc),.16);outline:0}
.xitem b{font-weight:600}.xitem span{font-size:.8rem;color:var(--mut,#9aa0a6)}
.xrow{display:flex;justify-content:flex-end;margin:0 0 10px}
body.cust-on [data-sh]>.cust{top:0}
.xitem{align-items:flex-start;text-align:left}

/* fond transparent choisi dans le panneau 🎨 / listes « à plat » */
[data-sbg="none"],.card.flat{background:transparent!important;box-shadow:none!important}
.card.flat{border:0!important;padding-left:0;padding-right:0}
.card.flat table{background:transparent}
.card.flat th{border-bottom:1px solid var(--line)}
/* sous-menu réunissant filtres, compteurs et seconds menus sur une seule ligne */
.subtabs.multi{flex-wrap:wrap!important;overflow:visible!important;max-width:none!important;align-items:center;row-gap:8px;margin-right:0;padding-right:0}
.subtabs .tsep{width:1px;height:22px;background:var(--line);margin:0 6px;flex:0 0 auto}
.subtabs .statline{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 0 6px;font-size:.84rem}
.subtabs form.filters.intabs{display:flex;flex-wrap:nowrap;flex:1 1 520px;min-width:0;justify-content:flex-end;order:9;align-items:center;gap:6px;margin:0 0 0 auto;padding:0;border:0!important;background:none!important;box-shadow:none!important}
.subtabs form.filters.intabs input,.subtabs form.filters.intabs select{height:34px;padding:0 10px;font-size:.85rem;width:auto;min-width:0;margin:0}
.subtabs form.filters.intabs input[type=search]{flex:1 1 150px;min-width:110px;max-width:260px}
.subtabs form.filters.intabs select{flex:0 1 150px;max-width:170px;text-overflow:ellipsis}
.subtabs .xmenu{order:8}
.subtabs form.filters.intabs .btn{height:34px;padding:0 12px;display:inline-flex;align-items:center}
.subtabs .pausebar{margin:0;padding:5px 12px;border-radius:999px;font-size:.82rem;animation:none!important;opacity:1!important;white-space:nowrap;display:inline-flex!important;align-items:center;gap:4px}
.subtabs .pausebar .pl{display:none}
.subtabs .xmenu~.xmenu{margin-left:6px}
.subtabs form.filters.intabs~.xmenu{margin-left:6px}

.sortlink{color:inherit;text-decoration:none;white-space:nowrap}.sortlink:hover{color:var(--accent)}
th.num,td.num{text-align:right}

/* petites tuiles : en mode personnalisation la barre d'outils se superpose (icônes seules) au lieu de gonfler la tuile */
body.cust-on .mt{position:relative}
body.cust-on .mt>.cust{position:absolute!important;top:5px;left:5px;right:5px;width:auto!important;margin:0;padding:2px 4px;gap:2px;flex-wrap:nowrap!important;z-index:6;background:rgba(14,14,14,.92)}
body.cust-on .mt>.cust b{display:none}
body.cust-on .mt>.cust .cgrip{margin-right:auto;font-size:1rem}
body.cust-on .mt>.cust button{padding:1px 5px;font-size:.72rem;border-radius:6px}
body.cust-on .mt>.rz{z-index:6}
body.cust-on .mt{padding-top:30px!important}

/* « À faire maintenant » : pastille à droite de la barre du menu, elle brille quand quelque chose d'important attend */
.todomenu>summary{gap:8px;font-weight:600}
.todomenu .tcn{min-width:22px;height:22px;font-size:.78rem;animation:none}
.todomenu .tdot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.todomenu.glow>summary{border-color:rgba(var(--acc),.9);background:rgba(var(--acc),.14);animation:todoGlow 1.8s ease-in-out infinite}
.todomenu.glow .tdot{background:#e08a55;animation:lpBeat 1.4s ease-in-out infinite}
.todomenu.ok>summary{opacity:.75;font-weight:500}
.xitem.p0 b{color:#e08a55}
@keyframes todoGlow{0%,100%{box-shadow:0 0 0 0 rgba(var(--acc),.0),0 0 10px rgba(var(--acc),.25)}50%{box-shadow:0 0 0 4px rgba(var(--acc),.18),0 0 22px rgba(var(--acc),.55)}}
@media(prefers-reduced-motion:reduce){.todomenu.glow>summary,.todomenu.glow .tdot{animation:none}}
.subtabs .todomenu{order:9}

.protag{background:rgba(var(--acc),.16)!important;color:var(--accent2,var(--accent))!important;border:1px solid rgba(var(--acc),.5);font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:.68rem;padding:1px 7px;vertical-align:middle}
.xpanel .xitem{overflow-wrap:anywhere;white-space:normal;text-align:left!important;align-items:flex-start!important}

/* « Aucun » fond : l'encart devient du simple texte posé sur le fond du site (ni fond, ni ombre, ni liseré, sauf si une bordure est choisie exprès) */
html body [data-sbg="none"]{background:transparent!important;background-image:none!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html body [data-sbg="none"]:not([data-sbd]){border-color:transparent!important}
html body [data-sbg="none"]::after{display:none!important}
html body [data-sbg="none"]:hover{box-shadow:none!important;transform:none!important}

/* placement libre : chaque encart est posé où l'on veut dans sa zone, les chevauchements sont permis */
.lp-free{position:relative!important;display:block!important}
.lp-free>[data-id]{position:absolute!important;margin:0!important;box-sizing:border-box;min-width:0}
.lp-free>.mt{min-height:112px!important}
body.cust-on .lp-free{min-height:320px;outline:1px dashed rgba(var(--acc),.25);outline-offset:4px}
body.cust-on .lp-free>[data-id]{box-shadow:0 0 0 1px rgba(var(--acc),.35)}
.lp-free>[data-id].dragging{opacity:.92;cursor:grabbing;box-shadow:0 18px 40px -12px rgba(0,0,0,.7),0 0 0 2px rgba(var(--acc),.7)!important}
body.dragging-free{user-select:none;cursor:grabbing}
body.cust-on .cust-cont>[data-id] .cust,body.cust-on .cust-cont>[data-id] .cust .cgrip{pointer-events:auto}

/* listes Devis / Factures : vues, statuts, recherche et « ranger » sur la ligne du sous-menu */
.subtabs .vuetabs{display:flex;gap:4px;margin:0 0 0 8px;padding-left:10px;border-left:1px solid var(--line)}
.subtabs .vuetabs a{padding:6px 12px;font-size:.84rem}
.subtabs .chips.inbar{display:flex;flex-wrap:nowrap;gap:4px;margin:0 0 0 8px;padding:0 0 0 10px;border:0;border-left:1px solid var(--line);border-radius:0;background:none;box-shadow:none}
.subtabs .chips.inbar a.btn{padding:6px 11px;font-size:.82rem;box-shadow:none}
.subtabs .rangerform{margin:0 0 0 6px;order:8}
.subtabs .rangerform .btn{padding:6px 12px;font-size:.82rem;white-space:nowrap}

/* formulaire d'ajout de tâche sur la ligne du sous-menu */
.subtabs form.taskadd{display:flex;flex-wrap:nowrap;flex:1 1 560px;min-width:0;order:9;align-items:center;gap:6px;margin:0 0 0 auto;padding:0;border:0;background:none;box-shadow:none}
.subtabs form.taskadd input[name=title]{flex:1 1 200px;min-width:120px;height:34px;padding:0 10px;font-size:.85rem;margin:0}
.subtabs form.taskadd input[type=date]{flex:0 0 140px;width:140px;height:34px;padding:0 8px;font-size:.85rem;margin:0}
.subtabs form.taskadd select{flex:0 1 170px;max-width:170px;height:34px;padding:0 8px;font-size:.85rem;margin:0}
.subtabs form.taskadd .check{display:flex;gap:6px;align-items:center;white-space:nowrap;font-size:.85rem;margin:0}
.subtabs form.taskadd .check input{width:auto;margin:0}
.subtabs form.taskadd .btn{height:34px;padding:0 14px;display:inline-flex;align-items:center}

#cstyle .cs-cl{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:2px 8px;height:30px}
#cstyle .cs-cl input{width:22px;height:22px;padding:0;border:0;background:none;cursor:pointer}
#cstyle .cs-cl i{font-style:normal}
/* Argent potentiel : pastille sur la ligne du sous-menu Projets */
.subtabs .potbar{display:flex;flex-wrap:nowrap;gap:4px 14px;align-items:center;padding:5px 14px;margin:0 0 0 6px;border-radius:99px;font-size:.84rem;white-space:nowrap;box-shadow:none}
.subtabs .potbar .muted{display:none}
/* petits réglages des barres */
.subtabs form.filters.intabs .btn{font-size:.85rem}
.subtabs form.filters.intabs input[type=search]{max-width:300px}
.subtabs form.taskadd .check{flex:0 0 auto!important;width:auto!important}
.subtabs form.taskadd .check input{flex:0 0 auto;width:16px!important;height:16px;margin:0}
.subtabs form.taskadd .btn{flex:0 0 auto;font-size:.85rem}
.subtabs form.taskadd .check input{min-width:0!important}


/* ================= MOBILE v2 (≤ 860 px) : une seule barre de sous-menu défilante, listes et formulaires faits pour le pouce ================= */
@media(max-width:860px){
 html{scroll-padding-top:120px}
 body{padding-bottom:calc(84px + env(safe-area-inset-bottom));overscroll-behavior-y:none}
 /* barre du haut : titre + 3 icônes, hauteur fixe */
 .top{height:58px;padding:0 14px;gap:10px;align-items:center}
 .top h1{font-size:1.2rem;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .top .actions{gap:6px}.top .actions .btn{display:none}
 .topsearch kbd{display:none!important}
 .vbtn{min-width:40px;height:40px;border-radius:12px}
 .backbtn{height:40px;padding:0 12px 0 8px}.backbtn span{display:none}
 main{padding:10px 14px 24px}
 /* sous-menu : une seule rangée qui défile sur le côté, collée sous la barre */
 main .subtabs{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;overflow-y:hidden;margin:0 -14px 12px;padding:8px 14px 8px;position:sticky;top:58px;z-index:4;
  background:color-mix(in srgb,var(--bg) 84%,transparent);scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
 main .subtabs::-webkit-scrollbar{display:none}
 main .subtabs a{flex:0 0 auto;scroll-snap-align:start;white-space:nowrap;padding:9px 15px;font-size:.9rem;min-height:40px;display:inline-flex;align-items:center;gap:7px}
 main .subtabs .tabbadge{position:static}
 /* champs, boutons : zones tactiles confortables, pas de zoom iOS */
 input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{font-size:16px;min-height:46px;padding:10px 12px;border-radius:12px}
 .btn{min-height:46px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center}.btn.small{min-height:40px;padding:8px 14px}
 .card{padding:14px;border-radius:18px}
 .row{min-height:52px}
 h2{font-size:1.05rem}
 /* filtres : recherche pleine largeur puis deux colonnes, jamais en barre */
 form.filters,form.filterbar,.filterbar{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;padding:0!important;margin:0 0 12px;border:0!important;background:none!important;box-shadow:none!important}
 form.filters>input[type=search],.filterbar>input[type=search],form.filters>input[name=q]{grid-column:1/-1}
 form.filters>.btn,.filterbar>.btn{width:100%}
 form.filters>.seg,.filterbar>.seg{grid-column:1/-1;display:flex;margin:0}.seg a{flex:1;text-align:center;padding:10px}
 /* pastilles de vues, statuts, compteurs : une rangée qui défile */
 .vuetabs{display:flex;margin:0 0 10px}.vuetabs a{flex:1;text-align:center;padding:10px 8px}
 .chips,.statline{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;margin:0 -14px 12px;padding:2px 14px;scrollbar-width:none}
 .chips::-webkit-scrollbar,.statline::-webkit-scrollbar{display:none}
 .chips.card{background:none;border:0;box-shadow:none}.chips a,.statline a,.statline>span{flex:0 0 auto;white-space:nowrap}
 .rangerform{margin:0 0 10px}.rangerform .btn{width:100%}
 .pausebar,.potbar{margin:0 0 12px;border-radius:16px;flex-wrap:wrap}
 .listmeta{margin:4px 2px 10px}
 /* formulaire d'ajout de tâche */
 form.taskadd{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}
 form.taskadd input[name=title]{grid-column:1/-1}form.taskadd .check{display:flex;align-items:center;gap:8px;min-height:46px}
 /* boutons-menus (exports, « À faire maintenant ») : ligne dédiée, pleine largeur */
 .xrow{justify-content:stretch;margin:0 0 12px}.xrow .xmenu{width:100%;margin:0}.xrow .xmenu>summary{width:100%;justify-content:space-between;min-height:46px}
 .xpanel{left:12px!important;right:12px!important;max-width:none;width:auto;top:auto!important;bottom:calc(88px + env(safe-area-inset-bottom));max-height:60vh;overflow:auto;border-radius:18px}
 .xitem{padding:13px 14px}
 /* accueil : tuiles en deux colonnes, grands encarts en pleine largeur */
 [data-reorder=home2]{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
 [data-reorder=home2]>*{grid-column:1/-1!important}
 [data-reorder=home2]>.mt{grid-column:auto!important;min-height:94px;padding:12px!important}
 [data-reorder=home2]>.mt>b{font-size:1.25rem}
 .scchips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.scchips::-webkit-scrollbar{display:none}
 .agenda{grid-template-columns:1fr!important}
 /* projets : colonnes du tableau l'une sous l'autre, les vides disparaissent */
 .kanban{display:flex!important;flex-direction:column;gap:12px;overflow:visible!important}
 .kanban .kcol{flex:none!important;width:auto!important;max-width:none}
 .kanban .kcol:not(:has(.kcard)){display:none}
 /* barre du bas : plus haute, repère doré sur l'onglet actif */
 .tabbar{padding:4px 6px calc(4px + env(safe-area-inset-bottom));border-top:1px solid rgba(var(--acc),.18)}
 .tabbar a,.tabbar button{min-height:56px;justify-content:center;position:relative}
 .tabbar a.on::before{content:"";position:absolute;top:0;left:30%;right:30%;height:3px;border-radius:0 0 4px 4px;background:var(--gold)}
 .fab{width:54px;height:54px;border-radius:17px;right:14px;bottom:calc(76px + env(safe-area-inset-bottom))}
 table.clients-t td,table.doclist td{padding:10px}
}

.lblm{display:none}
@media(max-width:860px){
 .lblm{display:inline}
 .kanban{align-items:stretch!important}.kanban .kcol{width:100%!important;min-width:0!important}
 main .subtabs[data-intabs],main .pausebar~.subtabs,main .subtabs~.subtabs{position:static;background:none}
 form.filters>.btn,.filterbar>.btn{grid-column:1/-1}
}

.sepm{display:none}
@media(max-width:860px){
 main .subtabs{scroll-padding:0 14px}
 .sepm{display:inline}.dbr{display:none}
 .card.tablewrap,.card.flat{padding:0!important;background:none!important;border:0!important;box-shadow:none!important}
 form.taskadd .check{grid-column:1/-1;justify-content:flex-start}form.taskadd .btn{grid-column:1/-1}
}
@media(max-width:860px){
 main .subtabs{background:color-mix(in srgb,var(--bg) 84%,transparent)!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
 main .subtabs[data-intabs],main .pausebar~.subtabs,main .subtabs~.subtabs{background:none!important;-webkit-backdrop-filter:none;backdrop-filter:none}
 .inlineform:not(.taskadd){display:grid;grid-template-columns:1fr;gap:10px;align-items:stretch}
 .inlineform:not(.taskadd) input,.inlineform:not(.taskadd) select{min-width:0;width:100%}
 .inlineform .check,label.check{display:flex;gap:10px;align-items:center;min-height:44px;justify-content:flex-start}
}

/* rien ne doit élargir la page sur mobile (sinon le navigateur dézoome et la barre du bas sort de l'écran) */
@media(max-width:860px){
 html,body{max-width:100%;overflow-x:clip}
 main,.main,.card{min-width:0;max-width:100%}
 main li,main p,main td,main th,main dd,main label,main h1,main h2,main h3,.card{overflow-wrap:anywhere}
 main code,main kbd{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
 main pre{max-width:100%;overflow-x:auto;white-space:pre-wrap}
 main img,main video,main iframe,main canvas,main svg{max-width:100%}
 main table{max-width:100%}
}

/* composants du bandeau (communs PC et mobile) */
.itile,.ichart{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(180deg,var(--card2),var(--card));box-shadow:var(--shadow);transition:border-color .2s,transform .2s}
.itile:hover,.ichart:hover{border-color:rgba(var(--acc),.4);transform:none}
.itile{display:flex;flex-direction:column;padding:16px 18px 14px;min-height:124px;--tc:var(--accent)}
.itile::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--tc),transparent 70%);opacity:.0}
.itile.t-gold::before,.itile.t-ok::before,.itile.t-bad::before{opacity:.85}
.t-gold{--tc:var(--accent)}.t-ok{--tc:var(--ok)}.t-bad{--tc:var(--warn)}.t-mut{--tc:color-mix(in srgb,var(--mut) 60%,transparent)}.t-acc{--tc:rgba(var(--acc),.5)}
.itile .il{font-size:.66rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--mut)}
.itile .iv{display:flex;align-items:baseline;gap:8px;margin-top:7px;font-size:1.72rem;font-weight:600;letter-spacing:-.02em;line-height:1.12;font-variant-numeric:lining-nums;white-space:nowrap}
.itile.t-bad .iv{color:var(--warn)}.itile.t-ok .iv{color:var(--ok)}
.itile .is{margin-top:5px;font-size:.78rem;color:var(--mut);line-height:1.35}
.idelta{font-style:normal;font-size:.66rem;font-weight:650;letter-spacing:.02em;padding:2px 7px;border-radius:999px;color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}
.idelta.down{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}
.itile.hs{padding-bottom:46px}
.ispw{position:absolute;left:0;right:12px;bottom:0;height:38px;pointer-events:none}
.isp{display:block;width:100%;height:100%;overflow:visible}
.isp-a{fill:rgba(var(--acc),.13)}
.isp-l{fill:none;stroke:rgba(var(--acc),.85);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.isp-d{position:absolute;right:0;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px rgba(var(--acc),.25);transform:translate(50%,-50%)}
/* graphique d'accompagnement */
.ichart{padding:16px 20px 16px;display:flex;flex-direction:column;gap:9px;min-width:0}
.ich{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ich b{font-size:.66rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--mut)}
.ich span{font-size:.74rem;color:var(--mut);text-align:right}
.iempty{margin:auto 0;color:var(--mut);font-size:.85rem}
.irk{display:grid;grid-template-columns:minmax(110px,40%) 1fr auto;align-items:center;gap:12px;font-size:.82rem;text-decoration:none;color:var(--ink);padding:1px 0}
a.irk:hover .irl{color:var(--accent2)}
.irl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.irb{height:6px;border-radius:99px;background:color-mix(in srgb,var(--ink) 9%,transparent);overflow:hidden}
.irb i{display:block;height:100%;border-radius:99px;background:var(--gold)}
.irv{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:3.2em;text-align:right}
.istack{display:flex;gap:3px;height:14px;margin-top:8px;border-radius:99px;overflow:hidden}
.istack i{background:var(--tc);border-radius:3px;min-width:6px}
.istack i:first-child{border-radius:99px 3px 3px 99px}.istack i:last-child{border-radius:3px 99px 99px 3px}.istack i:only-child{border-radius:99px}
.ileg{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.8rem;color:var(--mut)}
.ileg li{display:flex;align-items:center;gap:7px}.ileg li.z{opacity:.5}
.ileg s{width:9px;height:9px;border-radius:3px;background:var(--tc)}
.ileg b{color:var(--ink);font-variant-numeric:tabular-nums}
.icols{display:flex;align-items:flex-end;gap:7px;flex:1;min-height:92px}
.icol{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;height:100%}
.icv{font-size:.66rem;font-weight:600;color:var(--ink);height:12px;line-height:12px;font-variant-numeric:tabular-nums}
.icb{flex:1;width:100%;max-width:34px;min-height:44px;display:flex;align-items:flex-end;border-radius:6px 6px 2px 2px;background:color-mix(in srgb,var(--ink) 5%,transparent);overflow:hidden}
.icb i{display:block;width:100%;background:var(--gold);border-radius:6px 6px 2px 2px;min-height:2px}
.icol.z .icb i{opacity:.25}
.icl{font-size:.62rem;color:var(--mut);white-space:nowrap}


/* ================= PC — rafraîchissement : chiffres utiles, graphiques, tableaux (≥ 861 px uniquement) ================= */
@media(min-width:861px){
 /* bandeau de chiffres + graphique */
 .insights{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(320px,1.7fr);gap:14px;align-items:stretch}
 @media(max-width:1420px){.insights{grid-template-columns:repeat(2,minmax(0,1fr)) minmax(300px,1.25fr)}.insights .ichart{grid-column:3;grid-row:1/span 2}.itile{min-height:112px!important}}
 @media(max-width:1120px){.insights{grid-template-columns:repeat(2,minmax(0,1fr))}.insights .ichart{grid-column:1/-1;grid-row:auto}}
 /* tableaux : lecture plus aérée, chiffres alignés, survol doré */
 .tablewrap table,.card.flat table{border-collapse:separate;border-spacing:0;width:100%}
 .tablewrap th,.card.flat th{font-size:.66rem;font-weight:600;letter-spacing:.12em;padding:12px 16px;color:var(--mut);background:color-mix(in srgb,var(--card2) 92%,transparent);border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
 .card.flat th{background:none}
 .tablewrap td,.card.flat td{padding:13px 16px;border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent);vertical-align:middle}
 .tablewrap tbody tr:last-child td,.card.flat tbody tr:last-child td{border-bottom:0}
 .tablewrap tbody tr:hover,.card.flat tbody tr:hover{background:rgba(var(--acc),.055)}
 .tablewrap tbody tr:hover td:first-child,.card.flat tbody tr:hover td:first-child{box-shadow:inset 2px 0 0 var(--accent)}
 .tablewrap td:first-child>a:first-child,.card.flat td:first-child>a:first-child{font-weight:600;text-decoration:none}
 .tablewrap td:first-child>a:first-child:hover,.card.flat td:first-child>a:first-child:hover{color:var(--accent2)}
 .tablewrap td.num,.tablewrap th.num,.card.flat td.num,.card.flat th.num{text-align:right;font-variant-numeric:tabular-nums}
 .tablewrap td.num b,.card.flat td.num b{font-weight:600}
 .tablewrap td code,.card.flat td code{font-size:.78rem;padding:2px 8px;border-radius:7px;color:var(--mut)}
 .tablewrap .tag,.card.flat .tag{white-space:nowrap}
 .listmeta{margin:0 2px;font-size:.84rem}
 .tablewrap td:last-child:has(>.btn){white-space:nowrap}.tablewrap td:last-child:has(>.btn) form{display:inline-block;margin:0 0 0 4px;vertical-align:middle}.tablewrap td:last-child:has(>.btn)>.btn{vertical-align:middle}
 .statline{padding:2px 2px}
 .clients-t th{white-space:nowrap}.clients-t td:first-child{min-width:190px}
 .clients-t td.num,.clients-t td:last-child,.clients-t td:nth-child(4){white-space:nowrap}
 @media(min-width:1500px){.clients-t td:not(:first-child){white-space:nowrap}.clients-t .dbr{display:none}.clients-t .sepm{display:inline;color:var(--mut)}}
 .subtabs form.filters.intabs.wide{flex-basis:900px}
 .subtabs form.filters.intabs input[type=search]{flex:1 1 200px;min-width:150px}
 .subtabs form.filters.intabs select{flex:0 1 128px}
 .subtabs form.filterbar.intabs{flex:1 1 700px}
 .statline .chip{background:color-mix(in srgb,var(--card) 80%,transparent)}
 /* cartes : liseré lumineux discret */
 html:not([data-theme=light]) .card{box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.03)}
 /* Finances : chiffres en haut, graphique à gauche et plafonds à droite */
 .finlayout{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(340px,1fr);grid-template-areas:"kpi kpi" "chart plaf";gap:var(--gap);align-items:stretch}
 .finlayout>.mchart-card{display:flex;flex-direction:column}.finlayout>.mchart-card .mchart{flex:1;align-items:flex-end;gap:8px}.finlayout .mbars{height:clamp(140px,16vw,250px)}.finlayout .mval{font-size:.68rem}.finlayout .mlab{font-size:.72rem}.finlayout .mb{max-width:20px}
 .kpi b{font-variant-numeric:lining-nums}
 .finlayout>.kpis{grid-area:kpi}
 .finlayout>.mchart-card{grid-area:chart;margin:0}
 .finlayout>.plaf{grid-area:plaf;margin:0;padding:20px 22px}
 .finlayout .plaf h2{font-size:.98rem}.finlayout .plaf h2 .muted{display:block;font-size:.76rem;font-weight:400;margin-top:2px}
 .finlayout .plafrow .phint{display:none}
 .finlayout .plaf>.muted:last-child{font-size:.74rem}
 .kpi .ispw{position:static;height:30px;margin-top:10px;right:auto}
 .kpi .isp-d{display:none}
 @media(max-width:1250px){.finlayout{grid-template-columns:minmax(0,1fr);grid-template-areas:"kpi" "chart" "plaf"}}
}
@media(max-width:860px){.kpi .ispw{display:none}}
@media(min-width:861px){
 label.check input[type=checkbox],.inlineform label.check input[type=checkbox]{width:16px!important;height:16px;min-width:0!important;padding:0;margin:0;flex:0 0 auto}
}

/* ================= MOBILE v3 (≤ 860 px) : le contenu d'abord — filtres sur une ou deux lignes, bandeau de chiffres défilant ================= */
@media(max-width:860px){
 /* bandeau premium : une rangée qui défile sur le côté (4 tuiles + le graphique) */
 .insights{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;margin:0 -14px 10px;padding:2px 14px 4px;scrollbar-width:none;scroll-padding-left:14px}
 .insights::-webkit-scrollbar{display:none}
 .insights>*{scroll-snap-align:start;flex:0 0 auto}
 .itile{min-width:132px;padding:11px 13px 10px;min-height:0}
 .itile .il{font-size:.6rem;letter-spacing:.09em;white-space:nowrap}
 .itile .iv{font-size:1.3rem;margin-top:4px}
 .itile .is{font-size:.7rem;margin-top:3px;white-space:nowrap}
 .itile.hs{padding-bottom:34px}.itile .ispw{height:28px}
 .idelta{font-size:.58rem;padding:1px 5px}
 .ichart{width:270px;padding:11px 14px;gap:6px}
 .ich b{font-size:.6rem}.ich span{display:none}
 .irk{font-size:.76rem;gap:8px;padding:0}.irk:nth-of-type(n+5){display:none}
 .irk .irb{height:5px}
 .istack{height:12px;margin-top:4px}.ileg{gap:3px 12px;font-size:.72rem;margin-top:4px}
 .icols{min-height:64px;gap:4px}.icb{min-height:30px}.icl{font-size:.55rem}.icv{font-size:.58rem}
 /* filtres : recherche + listes déroulantes sur une ligne (3 listes : 2 lignes), plus de bouton « Filtrer » (la liste s'applique d'elle-même) */
 form.filters,form.filterbar,.filterbar{display:flex!important;flex-wrap:wrap;gap:6px;margin:0 0 8px}
 form.filters>input[type=search],.filterbar>input[type=search],form.filters>input[name=q]{flex:1 1 100%;min-width:0;height:40px;padding:0 12px}
 form.filters>select,.filterbar>select{flex:1 1 calc(33.3% - 6px);min-width:0;height:38px;padding:0 8px;font-size:14px;text-overflow:ellipsis}
 form.filters:not(:has(>select:nth-of-type(3)))>input[type=search]{flex:2 1 120px}
 form.filters:not(:has(>select:nth-of-type(3)))>select{flex:1 1 74px}
 form.filters>button[type=submit],.filterbar>button[type=submit]{display:none}
 form.filters>.btn,.filterbar>.btn{width:auto;flex:1 1 auto;grid-column:auto;padding:0 12px;height:38px;display:inline-flex;align-items:center;justify-content:center}
 form.filters>.seg,.filterbar>.seg{flex:1 1 100%}
 /* rangées de pastilles et petits menus plus fins */
 .vuetabs{margin:0 0 6px}.vuetabs a{padding:7px 8px;font-size:.84rem}
 .chips,.statline{margin-bottom:8px}.chips a.btn.small{padding:6px 12px;font-size:.82rem}
 .chips.inbar{margin-top:0}
 .rangerform{margin:0 0 6px;text-align:right}.rangerform .btn{width:auto;padding:5px 11px;font-size:.76rem;height:auto}
 .xrow{display:inline-flex;gap:6px;margin:0 6px 8px 0;vertical-align:top}.xrow .xmenu{width:auto;flex:0 0 auto}.xrow .xmenu>summary{min-height:38px;padding:0 12px;font-size:.88rem}
 details.xmenu>summary{min-height:38px}
 .pausebar{padding:8px 12px;margin:0 0 8px;border-radius:12px;font-size:.84rem}.pausebar .pl{display:none}
 .dupbanner{padding:10px 14px;font-size:.82rem;margin:0 0 8px}
 .listmeta{margin:0 2px 6px;font-size:.8rem}
 /* nouvelle tâche : titre + bouton sur une ligne, date / projet / prioritaire sur la suivante */
 form.taskadd{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:6px;margin:0 0 8px}
 form.taskadd input[name=title]{grid-column:1/3;height:40px}
 form.taskadd .btn{grid-column:3;grid-row:1;width:auto;height:40px;padding:0 16px}
 form.taskadd input[type=date]{grid-column:1;height:38px;font-size:13px;padding:0 6px}form.taskadd select{grid-column:2;height:38px;padding:0 8px;font-size:14px}
 form.taskadd .check{grid-column:3;grid-row:2;min-height:38px;white-space:nowrap;font-size:.82rem;gap:5px}
 /* planning : mois, année et flèches sur une seule ligne */
 .calnav{flex-wrap:nowrap!important;gap:4px!important;margin-bottom:8px}
 .calnav .btn.small{flex:0 0 auto;min-width:34px;height:34px;padding:0 8px;justify-content:center}
 .calnav form.datepick{flex:1 1 auto;min-width:0;justify-content:center;gap:2px}
 .calnav .datepick select,.calnav .datepick input{font-size:1rem;padding:2px 4px}.calnav .datepick select{max-width:none}.calnav .datepick input{width:4.6em}
 .calnav .evjump{display:contents}.calnav .evjump .btn{flex:0 0 auto}
 .calnav .lbl{display:none}
 /* Finances : graphique sans chiffres ni légende, note masquée, plafonds en une ligne dépliable */
 .mchart-card .mval,.noenc,.mchart-card>p.muted{display:none}
 .mchart-card h2 .muted{display:none}
 .plafd>summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:650;font-size:.95rem}
 .plafd>summary::-webkit-details-marker{display:none}
 .plafd>summary .pmini{flex:1;height:6px;border-radius:99px;background:color-mix(in srgb,var(--ink) 10%,transparent);overflow:hidden}
 .plafd>summary .pmini i{display:block;height:100%;background:var(--gold)}
 .plafd>summary small{color:var(--mut);font-weight:500;font-size:.8rem}
 .plafd>summary::after{content:"▾";color:var(--mut)}.plafd[open]>summary::after{content:"▴"}
 .plaf{padding:12px 14px!important}
 .plafd .plt2{display:none}
 .plafd .plafrow{margin:10px 0 0}.plafd .plafrow p,.plafd .phint,.plafd>.muted{display:none}
 .plafd .plafhd{font-size:.86rem}
 /* personnalisation sur mobile : ▲ ▼ pour changer l'ordre, 🎨 fond et bordure, 🙈 masquer */
 body.cust-on .cust{position:static;flex-wrap:nowrap;justify-content:flex-end;gap:4px;padding:4px}
 body.cust-on .cust .cgrip,body.cust-on .cust b,.rz{display:none!important}
 body.cust-on .cust button{flex:1;padding:6px 0;min-height:36px}
 .custbar{padding:8px 10px;margin:0 0 8px}.custbar .custhelp{font-size:.78rem;flex:1 1 100%}
 .custhelp .pc{display:none}
 #cstyle .cs-r:has([data-k=w]),#cstyle .cs-r:has([data-hh]),#cstyle .cs-r:has([data-a=auto]){display:none}
 #cstyle{position:fixed!important;left:8px!important;right:8px!important;top:auto!important;bottom:calc(84px + env(safe-area-inset-bottom))!important;width:auto!important;max-width:none}
}
@media(min-width:861px){.custhelp .mo,.calnav .ic,.plafsum{display:none}}
@media(max-width:860px){
 .potbar{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;white-space:nowrap;padding:8px 12px!important;gap:14px!important;margin:0 0 8px;scrollbar-width:none;font-size:.84rem}
 .potbar::-webkit-scrollbar{display:none}.potbar .muted{display:none}
 .chips.inbar .vuetabs{flex:0 0 auto;display:flex;gap:6px;margin:0 6px 0 0;padding:0 10px 0 0;border-right:1px solid var(--line)}
 .chips.inbar .vuetabs a{flex:0 0 auto;padding:6px 12px;white-space:nowrap}
}
@media(max-width:860px){.rangerform .btn{min-height:30px!important;height:30px!important;padding:0 11px!important;font-size:.76rem!important;line-height:30px}.rangerform{margin:0 0 4px!important}}

.writetop{display:inline-flex!important;align-items:center;gap:7px;text-decoration:none;color:var(--accent2)}
.writetop.on{background:var(--accent);color:var(--accent-ink,#000);border-color:transparent}
@media(max-width:860px){.top .actions .writetop{display:inline-grid!important;min-width:36px;padding:0 8px}.writetop .wl{display:none}}
/* ---- Agenda : vues, filtres, tâches / factures / échéances ---- */
.agbar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;margin-bottom:10px}
.agviews{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.agviews a{padding:7px 14px;font-size:.9rem;color:var(--mut);text-decoration:none;border-right:1px solid var(--line)}
.agviews a:last-child{border-right:0}.agviews a.on{background:rgba(var(--acc),.18);color:var(--ink);font-weight:600}
.agfilters{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.85rem;color:var(--mut)}.agfilters label{display:flex;gap:6px;align-items:center;cursor:pointer}.agfilters input{width:auto}
.gbar{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:space-between;padding:9px 14px;border-radius:10px;border:1px solid var(--line);margin-bottom:12px;font-size:.88rem}
.gbar.ok{border-color:rgba(47,125,79,.5);background:rgba(47,125,79,.08)}.gbar.warn{border-color:rgba(180,83,31,.6);background:rgba(180,83,31,.1)}.gbar.off{color:var(--mut)}
.gbar form{margin:0}
.agplan{margin-bottom:12px}
.ev[hidden]{display:none}
.ev.k-tache{background:rgba(150,150,150,.2)}.ev.k-facture{background:rgba(212,160,23,.22)}.ev.k-echeance{background:rgba(190,60,80,.18)}
.ev .evsub{display:block;font-size:.85em;opacity:.75;white-space:normal}
.agnav h2.agtitle{font-size:1.05rem}
.agweek{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.agday{border:1px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:5px;background:var(--card);min-width:0}
.agday.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.agday header{display:flex;align-items:baseline;gap:8px;font-size:.9rem}.agday header span{color:var(--mut)}
.agday .add{margin-left:auto;text-decoration:none;color:var(--mut);border:1px solid var(--line);border-radius:6px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center}
.agday .ev{white-space:normal;font-size:.82rem;padding:5px 7px}
.aglist{display:flex;flex-direction:column;gap:10px}.agdayview{display:flex;flex-direction:column;gap:8px}.agdayview .ev{font-size:.95rem;padding:9px 11px;white-space:normal}
@media (max-width:860px){.agweek{grid-template-columns:1fr}.agbar{flex-direction:column;align-items:stretch}.agviews{display:flex}.agviews a{flex:1;text-align:center}
  .calnav.agnav{display:grid!important;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px 6px!important;align-items:center}
  .agnav .btn.small{min-width:44px;height:44px;font-size:1.3rem;justify-content:center}
  .agnav .agtitle{text-align:center;font-size:1rem;line-height:1.25}
  .agnav .btn.small:last-child{grid-column:1/-1;height:38px;font-size:.9rem}}
.agfilters label{display:inline-flex;flex-direction:row;align-items:center;gap:6px;text-transform:none;letter-spacing:0;font-size:.85rem;margin:0;padding:5px 10px;border:1px solid var(--line);border-radius:999px;color:var(--ink)}
.agfilters input[type=checkbox]{width:auto;margin:0}
.agplan summary{cursor:pointer;list-style:none}.agplan summary::-webkit-details-marker{display:none}

/* ---- Menu du téléphone : toutes les rubriques tiennent à l'écran, sans défilement, quelle que soit la hauteur */
@media(max-width:900px){
 .side{overflow:hidden;padding:10px 10px 8px}
 .side .brand{padding:2px 10px 8px}
 .side nav{flex:1 1 0;min-height:0;gap:0}
 .side nav a,html[data-density=compact] .side nav a{flex:1 1 0;min-height:28px;max-height:48px;padding:0 12px;font-size:.95rem}
 .side nav a svg{width:19px;height:19px}
 .side .viewopts{margin:6px 0 4px;padding-top:6px}
 .side .logout button{padding:7px 12px}
}
@media(max-width:900px) and (max-height:560px){
 .side nav{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:minmax(30px,1fr);gap:2px 6px}
 .side nav a,html[data-density=compact] .side nav a{max-height:none;padding:0 8px;font-size:.88rem}
 .side{overflow-y:auto}
}

/* ---- Téléphone : le menu par catégorie se réduit vers la gauche (bouton ‹, glisser vers la gauche) et se rouvre par la languette › ou en glissant depuis le bord. Rien ne change sur ordinateur. */
.sideclose,.sidehandle{display:none}
@media(max-width:860px){
 .sideclose{display:flex;position:absolute;top:8px;right:8px;width:36px;height:36px;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:inherit;font-size:1.4rem;line-height:1;cursor:pointer;z-index:2}
 .sidehandle{display:flex;position:fixed;left:0;top:46%;width:16px;height:56px;align-items:center;justify-content:center;border:1px solid var(--line);border-left:0;border-radius:0 10px 10px 0;background:var(--card);color:var(--accent2);opacity:.6;font-size:1rem;padding:0;z-index:35;cursor:pointer}
 .open .sidehandle{display:none}
 .cust-on .sidehandle{display:none}
}

/* ---- Téléphone : barre d'icônes à gauche (par défaut) ; le bouton « Menu classique » du menu ramène l'ancienne présentation. Ordinateur inchangé. */
.mrailbtn{display:none}
@media(max-width:860px){
 html.mrail .sidehandle{display:none}
 html.mrail .main{margin-left:54px}
 html.mrail .side{left:0;width:54px;height:auto;bottom:calc(66px + env(safe-area-inset-bottom));padding:8px 5px;overflow:hidden;z-index:45;box-shadow:none;border-right:1px solid var(--line);transition:width .22s ease}
 html.mrail .side .lbl,html.mrail .side .viewopts,html.mrail .side .logout,html.mrail .side .sideclose,html.mrail .side .navgrp{display:none}
 html.mrail .side .brand{padding:2px 0 8px;justify-content:center;display:flex}
 html.mrail .side .brand .logoimg{display:none}html.mrail .side .brand .logomark{display:block!important;margin:0 auto}
 html.mrail .side nav{overflow-y:auto;scrollbar-width:none;flex:1 1 auto;min-height:0;gap:2px}html.mrail .side nav::-webkit-scrollbar{display:none}
 html.mrail .side nav a{flex:none;height:42px;min-height:42px;max-height:none;padding:0;justify-content:center;border-radius:12px}
 html.mrail .side nav a svg{width:21px;height:21px}
 html.mrail .side nav a.on::before{left:-5px;top:9px;bottom:9px}
 html.mrail .side nav a:hover{transform:none}
 /* déployé : libellés, rubriques en accordéon, réglages */
 html.mrail .open .side{width:min(300px,86vw);bottom:0;height:100%;padding:10px 10px 8px;overflow:hidden;box-shadow:20px 0 60px rgba(0,0,0,.6);z-index:50}
 html.mrail .open .side .lbl{display:inline}html.mrail .open .side .viewopts{display:flex}html.mrail .open .side .logout{display:block}html.mrail .open .side .sideclose{display:flex}
 html.mrail .open .side .brand{justify-content:flex-start;padding:2px 10px 8px}
 html.mrail .open .side .brand .logoimg{display:block}html.mrail .open .side .brand .logomark{display:none!important}
 html.mrail .open .side nav a{justify-content:flex-start;padding:0 12px;gap:12px;height:44px;position:relative}
 html.mrail .open .side nav a.on::before{left:-10px}
 .mrailbtn{display:inline-flex}
 html.mrail .mrailbtn .m-off{display:none}html:not(.mrail) .mrailbtn .m-on{display:none}
 .side .viewopts{flex-wrap:wrap}.side .viewopts .mrailbtn{flex:1 1 100%;height:34px}
 html.mrail .tabbar{left:0}
}

/* ---- Pilotage financier */
.pil-filters{padding:12px 14px}.pil-row{display:flex;flex-wrap:wrap;gap:10px 12px}.pil-row label{display:flex;flex-direction:column;gap:4px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);min-width:130px;flex:1 1 130px}
.pil-row select,.pil-row input{padding:8px 10px;font-size:.9rem;text-transform:none;letter-spacing:0}
.pil-note{margin:8px 0 0;font-size:.8rem}
.pil-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}
.pil-kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;border-top:3px solid var(--line);display:flex;flex-direction:column;gap:6px}
.pil-kpi.ok{border-top-color:#3fb97a}.pil-kpi.info{border-top-color:#4c8dff}.pil-kpi.warn{border-top-color:#e0a03a}.pil-kpi.bad{border-top-color:#e5484d}
.pil-kpi header{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--mut)}
.pil-kpi>b{font-size:1.7rem;line-height:1.1}
.pil-sub{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:.78rem;min-height:1.1em}
.pil-d{font-size:.78rem;font-weight:600}.pil-d.ok{color:#3fb97a}.pil-d.bad{color:#e5484d}.pil-d.warn{color:#e0a03a}.pil-d.mut{color:var(--mut);font-weight:400}
.pil-line{display:flex;justify-content:space-between;gap:10px;font-size:.8rem;color:var(--mut);border-top:1px dashed var(--line);padding-top:4px}.pil-line span:last-child{color:var(--ink,inherit);white-space:nowrap}
.pil-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}.pil-wide{grid-column:1/-1}
.pil-canvas{position:relative;height:320px}.pil-canvas.sm{height:260px}
.pil-hint{font-size:.78rem;margin:8px 0 0}
.pil-seg{display:flex;gap:6px;margin:0 0 8px}.pil-seg button{border:1px solid var(--line);background:none;color:var(--mut);border-radius:999px;padding:5px 12px;font:inherit;font-size:.78rem;cursor:pointer}.pil-seg button.on{background:rgba(var(--acc),.18);color:var(--accent2);border-color:rgba(var(--acc),.5)}
.pil-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.pil-tools h2{margin:0}
.pil-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.pil-table{min-width:840px}.pil-table td,.pil-table th{white-space:nowrap;padding:7px 9px}.pil-table td:nth-child(3){white-space:normal;min-width:120px}.pil-table td.num,.pil-table th.num{text-align:right}
.pb{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:600;white-space:nowrap}
.pb.ok{background:rgba(63,185,122,.18);color:#3fb97a}.pb.warn{background:rgba(224,160,58,.2);color:#e0a03a}.pb.bad{background:rgba(229,72,77,.18);color:#e5484d}.pb.info{background:rgba(76,141,255,.18);color:#4c8dff}.pb.mut{background:rgba(128,128,140,.18);color:var(--mut)}
@media(max-width:1100px){.pil-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.pil-kpis{grid-template-columns:1fr}.pil-grid{grid-template-columns:1fr}.pil-canvas{height:260px}.pil-row label{flex:1 1 45%}.pil-kpi>b{font-size:1.5rem}}
@media print{.side,.tabbar,.top,.pil-filters,.fab,.hubtabs,.pil-tools .btnrow,.sidehandle{display:none!important}.main{margin:0!important}.pil-kpis{grid-template-columns:repeat(3,1fr)}body{background:#fff!important;color:#000!important}}

.pil-kpi-wide{grid-column:1/-1}.pil-kpi-wide .pil-line{max-width:420px}
.pil-dlg{border:1px solid var(--line);border-radius:14px;background:var(--card,#16130d);color:inherit;padding:18px;max-width:440px;width:calc(100% - 28px)}.pil-dlg::backdrop{background:rgba(0,0,0,.55)}
.pil-dlg form{display:grid;gap:10px}.pil-dlg h3{margin:0}.pil-dlg label{display:grid;gap:4px;font-size:.82rem;color:var(--mut)}.pil-dlg label.chk{display:flex;gap:8px;align-items:center}.pil-dlg select,.pil-dlg input:not([type=checkbox]):not([type=hidden]){width:100%}.pil-err{color:#e5484d;margin:0;min-height:1em;font-size:.82rem}

/* ---- Fiche client 360° ---- */
.cf-hide{display:none!important}
.cf-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:14px 20px;align-items:center;padding:18px 20px;margin-bottom:12px;border:1px solid var(--line);border-radius:18px;
 background:radial-gradient(900px 220px at 8% -40%,rgba(197,155,39,.20),transparent 60%),linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.01)),var(--card);backdrop-filter:blur(6px)}
.cf-id{display:flex;gap:16px;align-items:center;min-width:0}
.cf-avatar{flex:none;width:68px;height:68px;border-radius:20px;display:grid;place-items:center;font-weight:700;font-size:1.5rem;letter-spacing:.04em;color:#1b1608;background:linear-gradient(135deg,#f3d889,#c59b27);box-shadow:0 8px 22px rgba(197,155,39,.28)}
.cf-who{min-width:0}.cf-name{margin:0;font-size:1.55rem;line-height:1.15}
.cf-badges{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}
.cf-badge{display:inline-block;padding:3px 11px;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.03em;border:1px solid var(--line);color:var(--mut)}
.cf-badge.gold{background:rgba(197,155,39,.18);color:#e5c566;border-color:rgba(197,155,39,.5)}.cf-badge.info{background:rgba(76,141,255,.14);color:#6fa2ff;border-color:rgba(76,141,255,.35)}
.cf-badge.ok{background:rgba(63,185,122,.14);color:#3fb97a;border-color:rgba(63,185,122,.35)}.cf-badge.warn{background:rgba(224,160,58,.16);color:#e0a03a;border-color:rgba(224,160,58,.4)}.cf-badge.bad{background:rgba(229,72,77,.15);color:#e5484d;border-color:rgba(229,72,77,.4)}
.cf-sub{margin:2px 0 0;font-size:.82rem;overflow-wrap:anywhere}
.cf-quick{display:flex;flex-wrap:wrap;gap:8px}.cf-notes>p{grid-column:1/-1}
.cf-kpis{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.cf-kpi{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025);transition:transform .18s,border-color .18s}
.cf-kpi:hover{transform:translateY(-2px);border-color:rgba(197,155,39,.5)}
.cf-kpi span{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--mut)}.cf-kpi b{font-size:1.5rem;line-height:1.1}.cf-kpi small{color:var(--mut);font-size:.76rem}
.cf-kpi.gold{border-color:rgba(197,155,39,.45)}.cf-kpi.gold b{color:#e5c566}.cf-kpi.ok b{color:#3fb97a}.cf-kpi.warn b{color:#e0a03a}.cf-kpi.bad b{color:#e5484d}
.cf-tabs{display:flex;gap:4px;overflow-x:auto;position:sticky;top:57px;z-index:4;padding:6px;margin:0 0 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);backdrop-filter:blur(8px);scrollbar-width:none}
.cf-tabs::-webkit-scrollbar{display:none}
.cf-tabs button{flex:none;border:0;background:none;color:var(--mut);font:inherit;font-size:.86rem;padding:8px 14px;border-radius:10px;cursor:pointer;transition:background .18s,color .18s;white-space:nowrap}
.cf-tabs button:hover{background:rgba(255,255,255,.05);color:inherit}.cf-tabs button.on{background:rgba(197,155,39,.18);color:#e5c566;font-weight:600}
.cf-tabs em{font-style:normal;font-size:.7rem;margin-left:4px;padding:1px 7px;border-radius:999px;background:rgba(255,255,255,.08)}
[data-tab]{animation:cfin .22s ease both}@keyframes cfin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cf-next{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.cf-next h2{width:100%;margin:0}
.cf-count{display:grid;place-items:center;min-width:92px;padding:10px 14px;border-radius:16px;border:1px solid rgba(197,155,39,.5);background:rgba(197,155,39,.1)}.cf-count b{font-size:2.2rem;line-height:1;color:#e5c566}.cf-count span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mut)}
.cf-notes{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:6px 0 10px}
.cf-postit{position:relative;padding:10px 12px;border-radius:10px;background:linear-gradient(160deg,rgba(197,155,39,.22),rgba(197,155,39,.08));border:1px solid rgba(197,155,39,.38);transition:transform .18s}.cf-postit:hover{transform:rotate(-.6deg) translateY(-2px)}
.cf-postit b{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#e5c566}.cf-postit p{margin:4px 0 0;font-size:.88rem;white-space:pre-wrap;overflow-wrap:anywhere}
.cf-unpin{position:absolute;top:4px;right:6px;border:0;background:none;color:var(--mut);cursor:pointer}.cf-postit form{margin:0}
.cf-timeline{list-style:none;margin:6px 0 0;padding:0;position:relative}.cf-timeline:before{content:"";position:absolute;left:15px;top:6px;bottom:6px;width:1px;background:var(--line)}
.cf-timeline li{position:relative;display:grid;grid-template-columns:32px 1fr auto;gap:12px;padding:7px 0;align-items:start}
.cf-dot{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:var(--card);border:1px solid rgba(197,155,39,.5);color:#e5c566;font-size:.85rem;z-index:1}
.cf-timeline li.future .cf-dot{border-style:dashed;color:#6fa2ff;border-color:rgba(76,141,255,.6)}
.cf-timeline b{font-size:.9rem}.cf-timeline p{margin:2px 0 0;font-size:.8rem}.cf-timeline time{font-size:.74rem;white-space:nowrap}
.cf-docrow{display:flex;gap:8px;align-items:center}.cf-docrow .row{flex:1;min-width:0}
.cf-st.ok{background:rgba(63,185,122,.18);color:#3fb97a}.cf-st.warn{background:rgba(224,160,58,.2);color:#e0a03a}.cf-st.bad{background:rgba(229,72,77,.18);color:#e5484d}
.cf-shoot{padding:10px 0;border-top:1px solid var(--line)}.cf-shoot:first-of-type{border-top:0}.cf-shoothd{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.cf-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin:8px 0}.cf-thumbs img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:10px;border:1px solid var(--line);transition:transform .2s,box-shadow .2s}.cf-thumbs a:hover img{transform:scale(1.03);box-shadow:0 8px 20px rgba(0,0,0,.4)}
.cf-links{display:flex;flex-wrap:wrap;gap:6px}
.cf-addnote{flex-wrap:wrap}.cf-int .btnrow{align-items:center}
@media(max-width:860px){.cf-hero{grid-template-columns:1fr;padding:14px}.cf-quick{justify-content:flex-start}.cf-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cf-tabs{top:50px}.cf-avatar{width:54px;height:54px;font-size:1.2rem}.cf-name{font-size:1.25rem}}
@media(prefers-reduced-motion:reduce){[data-tab]{animation:none}.cf-kpi,.cf-postit,.cf-thumbs img{transition:none}}
.splitline{margin:10px 0 0;font-size:.86rem;line-height:1.8}.dotf,.dotd{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}.dotf{background:var(--accent)}.dotd{background:rgba(150,90,190,.8)}
.meteocard{display:flex;flex-direction:column;min-width:0}.meteolist{display:grid;gap:10px;align-content:start}.meteocard h2{margin-bottom:10px;font-size:1rem;line-height:1.25}
.meteocard:not(.follow) .meteolist{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.meteocard.follow{overflow:hidden}.meteocard.follow .meteolist{flex:1 1 0;min-height:0;overflow-y:auto;padding-right:2px;scrollbar-width:thin}
.mt-row{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02);min-width:0}
.mt-row.ok{border-left-color:#3fb97a}.mt-row.warn{border-left-color:#e0a03a}.mt-row.bad{border-left-color:#e5484d}
.mt-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.mt-d{font-weight:800;color:var(--accent)}.mt-h small,.mt-t small,.mt-w small{font-weight:400;font-size:.74rem;color:var(--mut)}
.mt-t{display:grid;gap:1px;line-height:1.25;text-decoration:none;color:inherit;min-width:0}.mt-t b{overflow-wrap:anywhere}.mt-t small{overflow-wrap:anywhere}
.mt-w{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:0 10px;align-items:center}.mt-w .mt-i{grid-row:1/3;font-size:1.9rem;line-height:1}.mt-w b{font-size:1.05rem}
.mt-c,.mt-s{display:flex;flex-wrap:wrap;gap:3px 10px;font-size:.78rem;color:var(--mut)}.mt-s .gold{color:var(--accent);font-weight:600}
.mt-v{font-size:.8rem;font-weight:700}.mt-row.ok .mt-v{color:#3fb97a}.mt-row.warn .mt-v{color:#e0a03a}.mt-row.bad .mt-v{color:#e5484d}
.mt-tips{margin:0;padding-left:16px;font-size:.76rem;color:var(--mut)}.mt-n{font-size:.82rem}
.actrow{flex-wrap:wrap;gap:6px 10px;align-items:center}.actrow>.muted{white-space:nowrap}.actedit[hidden]{display:none!important}.actedit{flex-wrap:nowrap}.actedit input[name=name]{flex:1;min-width:0}

/* prospection : indicateur de fiabilité des e-mails supposés, scan, WhatsApp */
.gs{display:inline-block;font-size:.76rem;padding:1px 7px;border-radius:999px;font-weight:600;line-height:1.5}
.gs-mid{background:rgba(250,176,5,.18);color:#e8890c;border:1px solid rgba(250,176,5,.45)}
.gs-low{background:rgba(128,128,128,.16);color:var(--muted,#8a8f98);border:1px solid rgba(128,128,128,.35)}
.gs-wa{font-size:.78rem;color:#25a244;font-weight:600;text-decoration:none;border:1px solid rgba(37,162,68,.4);border-radius:999px;padding:1px 7px}
.scanbox{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 12px;background:rgba(250,176,5,.07)}
.scanbox[hidden]{display:none}
.scanbar{height:8px;border-radius:6px;background:rgba(128,128,128,.25);margin:6px 0;overflow:hidden}
.scanbar i{display:block;height:8px;background:#fab005;transition:width .5s}

/* annonces : pipeline en colonnes, relance en retard */
.adkan{display:grid;grid-template-columns:repeat(6,minmax(170px,1fr));gap:10px;margin-top:12px;overflow-x:auto;padding-bottom:6px}
.adcol{border:1px solid var(--line);border-radius:12px;padding:8px;background:rgba(255,255,255,.02);min-height:120px;display:grid;gap:8px;align-content:start}
.adcol h3{margin:0 0 2px;font-size:.88rem}.adcol.over{outline:2px dashed var(--accent);outline-offset:-2px}
.adcard{border:1px solid var(--line);border-radius:10px;padding:8px 9px;background:var(--card,#16181d);display:grid;gap:3px;cursor:grab;font-size:.84rem;line-height:1.3}
.adcard.dragging{opacity:.4}.adcard a{text-decoration:none;color:inherit}.adcard small{font-size:.74rem}
.late{color:#e5484d;font-weight:600}
.adcard .adscore{justify-self:start}

/* ventes : suivi de signature, alerte d'expiration, suite d'un devis accepté, journal */
.signbadge{display:inline-block;padding:1px 9px;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid var(--line)}
.signbadge.ok{background:rgba(63,185,122,.16);color:#3fb97a;border-color:rgba(63,185,122,.45)}.signbadge.warn{background:rgba(224,160,58,.16);color:#e0a03a;border-color:rgba(224,160,58,.45)}.signbadge.bad{background:rgba(229,72,77,.16);color:#e5484d;border-color:rgba(229,72,77,.45)}
.expalert{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 14px;border-radius:12px;margin:0 0 14px;border:1px solid}
.expalert.soon{background:rgba(224,160,58,.12);border-color:rgba(224,160,58,.5);color:#e0a03a}.expalert.expired{background:rgba(229,72,77,.12);border-color:rgba(229,72,77,.5);color:#e5484d}
.nextsteps{border-color:rgba(63,185,122,.45)}.stepslist{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:4px}.stepslist li.done{color:#3fb97a}
.suitedlg{border:1px solid var(--line);border-radius:16px;background:var(--card,#16181d);color:inherit;max-width:560px;width:calc(100% - 28px);padding:18px}.suitedlg::backdrop{background:rgba(0,0,0,.6)}
.actsum{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 8px;font-size:.88rem}

/* ---- Mission Prospect (étape 69) : carnet de route sombre, gros boutons pour le terrain */
.tourbook{--bg:#0e0f12;--card:#17181d;--ink:#f1efe9;--mut:#a1a1a8;--line:#2a2b33;max-width:720px;margin:0 auto}
.tourbook .card,.tourbook .tstop{background:var(--card);color:var(--ink);border-color:var(--line)}
.tourbook input,.tourbook select,.tourbook textarea{background:#0e0f12;color:var(--ink);border-color:var(--line);font-size:16px}
.tourbook .card h2,.tourbook .tstop b{color:var(--ink)}
.tourbook a{color:var(--accent)}
.tourbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:rgba(201,161,74,.1);border:1px solid var(--accent);border-radius:12px;padding:10px 12px;margin:0 0 12px}
.tourbar .tpick{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap}
.tourbar .tstart{flex:1 1 220px;display:flex;align-items:center;gap:6px;margin:0}
.tourbar .tstart input{min-width:0}
.tstat{display:flex;gap:10px;flex-wrap:wrap;background:linear-gradient(135deg,#1d1b14,#17181d);border:1px solid #4a3f22;border-radius:14px;padding:14px;margin-bottom:14px}
.tstat-main{flex:1 1 140px;display:flex;flex-direction:column}.tstat-main b{font-size:2.2rem;line-height:1;color:var(--accent)}.tstat-main span{color:var(--mut);font-size:.9rem}
.tstat-sub{flex:1 0 100%;color:var(--mut);font-size:.88rem}
.trow{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.tprog{position:relative;display:block;min-width:90px;height:22px;border-radius:99px;background:#0e0f12;border:1px solid var(--line);overflow:hidden}
.tprog i{position:absolute;inset:0 auto 0 0;background:var(--ok);opacity:.85}.tprog em{position:relative;display:block;text-align:center;font-style:normal;font-size:.78rem;line-height:20px;color:#fff}
.tprog.big{height:28px}.tprog.big em{line-height:26px;font-size:.88rem}
.tstop{border:1px solid var(--line);border-left:5px solid #3a3b44;border-radius:14px;padding:12px;margin-bottom:12px}
.tstop.next{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.tstop.o-contact{border-left-color:#40c057}.tstop.o-carte{border-left-color:#fab005}.tstop.o-absent{border-left-color:#fa5252}
.tstop header{display:flex;gap:10px;align-items:flex-start}
.tnum{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accent);color:#1d1d1f;font-weight:800}
.tname{flex:1;min-width:0;display:flex;flex-direction:column}.tname b{font-size:1.08rem}.taddr{color:var(--ink);opacity:.85}
.tdist{flex:none;text-align:right;display:flex;flex-direction:column}.tdist b{font-size:1.25rem;color:var(--accent)}.tdist small{color:var(--mut);font-size:.72rem}
.tgo{display:grid;grid-template-columns:2fr 1fr;gap:8px;margin:12px 0 8px}@media (min-width:521px){.tgo .tbtn:nth-child(3){grid-column:1/-1}}
.tbtn{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:#23242b;color:var(--ink)!important;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;width:100%;text-align:center}
.tbtn.gps{background:var(--accent);color:#1d1d1f!important;border-color:var(--accent)}.tbtn.waze{background:#33ccff;color:#06222c!important;border-color:#33ccff}
.tbtn.ok{background:#2b8a3e;border-color:#2b8a3e;color:#fff!important}.tbtn.warn{background:#e8a317;border-color:#e8a317;color:#1d1d1f!important}.tbtn.bad{background:#c92a2a;border-color:#c92a2a;color:#fff!important}
.tbtn.sel{border-color:var(--accent);background:rgba(201,161,74,.18)}
.tmemo,.tout details{border:1px solid var(--line);border-radius:12px;background:#0e0f12;margin:8px 0}
.tmemo summary,.tout summary{padding:13px 14px;cursor:pointer;font-weight:700;min-height:20px}
.tmemo-t{padding:0 14px 14px;white-space:pre-wrap;color:#d6d4cd}
.tout details form{padding:0 14px 14px;display:grid;gap:10px}.tout details label{display:grid;gap:4px;font-size:.9rem;color:var(--mut)}
.tout details label.check{display:flex;align-items:center;gap:8px;color:var(--ink)}.tout details label.check input{width:22px;height:22px}
.tout .o-contact[open]{border-color:#40c057}.tout .o-carte[open]{border-color:#fab005}.tout .o-absent[open]{border-color:#fa5252}
.tdone{margin-top:10px;display:grid;gap:4px}.tdock{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.tdock form{margin:0}
.tlink{background:none;border:0;color:var(--mut);font:inherit;text-decoration:underline;cursor:pointer;padding:6px 0}
@media (max-width:520px){.tgo{grid-template-columns:1fr 1fr}.tgo .tbtn.gps{grid-column:1/-1}.tdock{grid-template-columns:1fr}.tourbar .btn{width:100%}}

.hubtabs .findbtn{margin-left:auto;white-space:nowrap}
#findcard[hidden]{display:none}

/* ---- Tâches : une ligne très compacte par tâche (étape 70) */
.goals.tasks{display:flex;flex-direction:column;gap:3px;margin:0 0 4px}
.goals.tasks .task.card{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;padding:3px 10px;margin:0;border-radius:8px}
.goals.tasks .task .goalhd{flex:1 1 260px;display:flex;align-items:center;gap:8px;min-width:0;margin:0}
.goals.tasks .task .goalhd form{margin:0;display:flex}
.goals.tasks .task .taskbtn{padding:0 2px;font-size:1rem;line-height:1}
.goals.tasks .task .goaltitle{flex:1 1 auto;min-width:0;font-size:.88rem;font-weight:600;padding:2px 6px;border-color:transparent;background:transparent;height:auto}
.goals.tasks .task .goaltitle:focus{background:var(--bg);border-color:var(--line)}
.goals.tasks .task .goaldue{flex:0 0 auto;width:auto;font-size:.76rem;padding:1px 4px;height:auto}
.goals.tasks .task .goalpct{font-size:.74rem;min-width:30px;text-align:right}
.goals.tasks .task .bar.lg{flex:0 0 60px;height:4px;margin:0}
.goals.tasks .task .taskmeta{display:flex;gap:6px;align-items:center;margin:0;font-size:.74rem}
.goals.tasks .task .taskmeta .tag{padding:0 6px;font-size:.68rem}
.goals.tasks .task details.fold{flex:0 0 auto;margin:0}
.goals.tasks .task details.fold>summary{font-size:.72rem;padding:0;color:var(--mut);cursor:pointer}
.goals.tasks .task details.fold[open]{flex:1 0 100%;padding:4px 0 6px}
.goals.tasks .task .as-state{font-size:.7rem}
@media (max-width:640px){.goals.tasks .task .bar.lg{display:none}}

/* ---- Planning du mois : tout sur un écran (étape 71) */
.planhead{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:8px}
.planhead .agbar{display:contents}
.planhead .agviews a{padding:4px 12px;font-size:.84rem}
.planhead .agfilters{gap:4px 8px}.planhead .agfilters label{padding:2px 9px;font-size:.78rem}
.planhead .legend{flex:1 1 100%;margin:0;gap:4px;flex-wrap:wrap}.planhead .legend .ev{font-size:.64rem;padding:0 6px;display:inline-block}
.planhead .gbar{margin:0 0 0 auto;padding:3px 10px;font-size:.78rem;gap:8px;border-radius:8px}
.planhead .gbar .btn.small{padding:2px 9px;font-size:.76rem}
.planhead .agplan{flex:1 1 100%;margin:0}
.planfit{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:stretch}
.planfit.full{grid-template-columns:minmax(0,1fr)}.planfit.full .planside{display:none}
.plancal{display:flex;flex-direction:column;min-height:0;margin:0;padding:10px 12px}
.plancal .calnav{margin-bottom:6px;gap:6px;flex-wrap:nowrap}.plancal .calnav .planfull{margin-left:auto}.plancal .evjump{display:inline-flex;gap:4px}
.plancal .calnav h2{display:none}
.plancal .cal{flex:1;min-height:0;grid-template-rows:auto repeat(var(--wk,6),minmax(0,1fr));gap:3px}
.plancal .calh{padding:1px 0;font-size:.74rem}
.plancal .calday{min-height:0;overflow:hidden;padding:3px 4px;gap:2px;border-color:var(--line)}
.plancal .calday .dn{font-size:.74rem;line-height:1}
.plancal .calday .ev{font-size:.7rem;padding:1px 4px;line-height:1.2;flex:none}
.plancal .calday:hover{overflow:auto;scrollbar-width:thin}
:root:not([data-theme=light]) .plancal .calday{border-color:#334155}
.plancal .calday.today{border-color:#C59B27;box-shadow:inset 0 0 0 1px #C59B27;background:rgba(197,155,39,.08)}
.plancal .calday.today .dn{color:#C59B27;font-weight:800}
.planside{display:flex;flex-direction:column;gap:10px;min-height:0}
.planside .pside{margin:0;padding:10px 12px;min-height:0;overflow:auto;scrollbar-width:thin;flex:1 1 0}
.planside .pside-dep{flex:0 0 auto;max-height:42%}.planside .pside-up{flex:1.3 1 0}
.planside .pside h2{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin:0 0 6px}
.planside .row{padding:5px 0;font-size:.82rem;line-height:1.25}.planside .row .muted{font-size:.72rem}
.planside .tag{font-size:.7rem;padding:1px 7px;white-space:nowrap}
.planside dl{display:grid;grid-template-columns:auto 1fr;gap:1px 10px;margin:4px 0;font-size:.8rem}.planside dl dt{color:var(--mut)}.planside dl dd{margin:0;text-align:right;font-weight:600}
.planside p.muted{font-size:.72rem;margin:4px 0 0}
.splitbadges{display:flex;gap:6px;flex-wrap:wrap}
.sb{display:inline-flex;gap:5px;align-items:baseline;font-size:.78rem;padding:2px 10px;border-radius:99px;border:1px solid}
.sb b{font-size:.95rem}
.sb-f{color:#C59B27;border-color:rgba(197,155,39,.55);background:rgba(197,155,39,.12)}.sb-d{color:#a78bfa;border-color:rgba(139,92,246,.55);background:rgba(139,92,246,.12)}
@media (min-width:1100px) and (min-height:600px){
  html.planfit-on body{overflow-y:hidden}
  html.planfit-on main>*:not(.planfit){flex:none}
}
@media (max-width:1099px),(max-height:599px){
  .planfit{display:block;height:auto!important}.plancal{margin-bottom:12px}.plancal .cal{grid-template-rows:none}.plancal .calday{min-height:64px;overflow:visible}
  .planside{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.planside .pside{max-height:none;overflow:visible}.planfit.full .planside{display:grid}
  .planfull{display:none}
}

/* ---- Tâches + Objectifs : tout sur une page, encarts allégés (étape 72) */
.tasksins .insights{gap:8px}
.tasksins .itile{min-height:0!important;padding:8px 12px 8px}
.tasksins .itile .iv{font-size:1.2rem;margin-top:2px}
.tasksins .itile .is{margin-top:1px;font-size:.72rem}
.tasksins .itile.hs{padding-bottom:8px}.tasksins .itile .ispw{display:none}
.tasksins .ichart{padding:8px 12px;gap:4px}.tasksins .ichart .icols{min-height:0;height:44px;flex:none}.tasksins .ichart .icb{min-height:0}.tasksins .ichart .ich span{display:none}
.secth.tk{margin:10px 0 6px!important;font-size:1rem}
.goalsbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 6px}
.goalsbar h2.secth{margin:0;white-space:nowrap}
.goalsbar .goaladd{margin:0 0 0 auto;flex:1 1 360px;max-width:760px;display:flex;gap:6px;align-items:center}
.goalsbar .goaladd input{min-width:0}.goalsbar .goaladd .btn{flex:0 0 auto}.goalsbar .goaladd input[name=title]{flex:1 1 auto;padding:4px 10px}
.goalsbar .goaladd input[type=date]{flex:0 0 auto;width:auto;padding:3px 6px;font-size:.82rem}
.goals.goalslist{display:flex;flex-direction:column;gap:3px;margin-top:0}
.goals.goalslist .goal.card{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;padding:3px 10px;margin:0;border-radius:8px}
.goals.goalslist .goalhd{flex:1 1 260px;display:flex;align-items:center;gap:8px;min-width:0;margin:0}
.goals.goalslist .goalhd form{margin:0;display:flex}
.goals.goalslist .taskbtn{padding:0 2px;font-size:1rem;line-height:1}
.goals.goalslist .goaltitle{flex:1 1 auto;min-width:0;font-size:.88rem;font-weight:600;padding:2px 6px;border-color:transparent;background:transparent;height:auto}
.goals.goalslist .goaltitle:focus{background:var(--bg);border-color:var(--line)}
.goals.goalslist .goaldue{flex:0 0 auto;width:auto;font-size:.76rem;padding:1px 4px;height:auto}
.goals.goalslist .goalpct{font-size:.74rem;min-width:30px;text-align:right}
.goals.goalslist .bar.lg{flex:0 0 60px;height:4px;margin:0}
.goals.goalslist details.fold{flex:0 0 auto;margin:0}
.goals.goalslist details.fold>summary{font-size:.72rem;padding:0;color:var(--mut);cursor:pointer}
.goals.goalslist details.fold[open]{flex:1 0 100%;padding:4px 0 6px;display:grid;gap:8px}
.goals.goalslist .as-state{font-size:.7rem}
@media (max-width:640px){.goals.goalslist .bar.lg{display:none}.goalsbar .goaladd{flex-basis:100%;margin:0}}

.goalsbar{margin:6px 0 6px}.tasksins{margin-bottom:0}.tasksins .insights{margin-bottom:0}

/* ---- Projets : tableau fluide, cartes enrichies, liste triable (étape 73) */
.projbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px}
.projbar input[type=search]{flex:1 1 220px;max-width:340px;padding:5px 10px;min-height:0}
.projbar select{width:auto;max-width:170px;padding:5px 8px;min-height:0;font-size:.86rem}
.projbar .viewsw{margin-left:auto}
.projbar .viewsw a{padding:5px 12px;font-size:.84rem;display:inline-flex;gap:6px;align-items:center}
.projins{margin-bottom:8px}
.kanban.kfit{display:grid;grid-template-columns:repeat(var(--n,6),minmax(190px,1fr));gap:10px;overflow-x:auto;overflow-y:hidden;align-items:stretch;padding-bottom:6px;scroll-snap-type:x proximity;scroll-behavior:smooth}
.kanban.kfit .kcol{display:flex;flex-direction:column;min-height:0;padding:8px;scroll-snap-align:start;min-width:0}
.kanban.kfit .kcol h2{display:flex;align-items:center;gap:8px;margin:0 2px 8px;font-size:.7rem;flex:none}
.kanban.kfit .kname{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kanban.kfit .count{min-width:22px;text-align:center;padding:0 7px;border-radius:99px;background:rgba(var(--acc),.16);color:var(--ink);font-weight:700;font-size:.72rem;letter-spacing:0}
.kanban.kfit .ksum{font-size:.68rem;letter-spacing:0;text-transform:none;color:var(--mut);font-weight:500}
.kanban.kfit .kdrop{flex:1;min-height:0;overflow-y:auto;gap:6px;scrollbar-width:thin;padding-right:2px}
.kanban.kfit .kcol.over{box-shadow:inset 0 0 0 1px var(--accent),0 0 22px -8px rgba(var(--acc),.5)}
.kempty{margin:8px 0;text-align:center;font-size:.76rem;color:var(--mut);border:1px dashed var(--line);border-radius:10px;padding:14px 6px}
.kcard{padding:8px 10px;position:relative}
.kcard .khd{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;margin-bottom:4px}
.kcard .ktitle{font-size:.9rem;line-height:1.25;margin:0 0 1px}
.kcard .kclient{font-size:.74rem;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kb{font-style:normal;font-size:.64rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:1px 7px;border-radius:99px;border:1px solid;white-space:nowrap}
.kb-mariage{color:#f0abcb;border-color:rgba(240,171,203,.45);background:rgba(240,171,203,.1)}
.kb-immobilier{color:#7fb3ff;border-color:rgba(127,179,255,.45);background:rgba(127,179,255,.1)}
.kb-autre{color:#c4b5fd;border-color:rgba(196,181,253,.4);background:rgba(196,181,253,.09)}
.cd{font-style:normal;font-size:.68rem;font-weight:800;padding:1px 8px;border-radius:99px;background:rgba(197,155,39,.18);color:#e2b53c;border:1px solid rgba(197,155,39,.6);white-space:nowrap}
.cd.hot{background:#C59B27;color:#1b1608;border-color:#C59B27}
.kdate{font-size:.7rem;color:var(--mut)}
.kprog{display:flex;align-items:center;gap:7px;margin-top:5px;font-size:.72rem;color:var(--mut)}
.kprog .kbar,.kbar.mini{flex:1;height:4px;border-radius:99px;background:#23262e;overflow:hidden;display:block}.kbar.mini{display:inline-block;width:46px;flex:none;vertical-align:middle}
.kfoot{display:flex;align-items:center;justify-content:space-between;margin-top:6px;gap:6px}
.kfoot .kamt{font-size:.88rem;color:var(--accent)}
.kfoot .karrows{display:none;margin:0;gap:4px}.kfoot .karrows .btn{padding:1px 8px}
@media (hover:none),(max-width:860px){.kfoot .karrows{display:flex}}
.kmenu{margin-left:auto;position:relative}
.kdots{background:none;border:1px solid transparent;color:var(--mut);border-radius:8px;width:26px;height:22px;line-height:1;font-size:1rem;cursor:pointer;opacity:0;transition:opacity .15s;padding:0}
.kcard:hover .kdots,.kdots:focus-visible,.kdots[aria-expanded=true]{opacity:1}
.kdots:hover{border-color:var(--line);color:var(--ink)}
@media (hover:none){.kdots{opacity:1}}
.kpop{position:absolute;right:0;top:26px;z-index:30;min-width:200px;background:var(--card2,#1a1b20);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 34px -10px rgba(0,0,0,.85);padding:6px;display:flex;flex-direction:column;gap:2px}
.kpop[hidden]{display:none}
.kpop a{padding:7px 10px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:.84rem}.kpop a:hover{background:rgba(var(--acc),.14)}
.kpop .kqt{display:flex;gap:4px;margin:4px 0 0;padding:4px}.kpop .kqt input{flex:1;min-width:0;padding:4px 8px;font-size:.82rem}
.kcard.landed{animation:klanded .6s ease}
@keyframes klanded{0%{box-shadow:0 0 0 2px var(--accent)}100%{box-shadow:0 0 0 0 transparent}}
#ktoast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#14151a;color:var(--ink);border:1px solid var(--accent);border-radius:99px;padding:8px 18px;font-size:.88rem;z-index:80;transition:opacity .2s,transform .2s}
#ktoast.on{opacity:1;transform:translate(-50%,0)}
.projlist.sortable thead th{white-space:nowrap;user-select:none;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mut)}
.projlist.sortable thead th.asc::after{content:" ▲";color:var(--accent)}.projlist.sortable thead th.desc::after{content:" ▼";color:var(--accent)}
.projlist td,.projlist th{padding:6px 10px}.projlist tbody tr{cursor:pointer}.projlist tbody tr:hover{background:rgba(var(--acc),.07)}
.projlist td.qa{white-space:nowrap;text-align:right}.projlist tfoot td{border-top:2px solid var(--line);padding-top:8px}
@media (max-width:860px){.kanban.kfit{display:flex;overflow-x:auto;height:auto!important}.kanban.kfit .kcol{flex:0 0 260px}.kanban.kfit .kdrop{overflow:visible}.projbar .viewsw{margin-left:0}}
.projins .ileg{display:none}.projins .ichart{justify-content:center}.projins .istack{margin-top:2px}
.kpop.kfloat{position:fixed;right:auto;z-index:90}

/* étape 73 : barre filtres Projets, jamais tronquée */
.projbar .btn,.projbar .viewsw,.projbar .viewsw a,.projbar a.btn{white-space:nowrap;flex-shrink:0}
.projbar select{flex:0 1 auto;min-width:96px}
.projbar input[type=search]{min-width:150px}
.subtabs .projbar{flex:1 1 520px;min-width:0;margin:0}

/* ===== étape 74 : Tâches & Objectifs sur-vitaminés ===== */
/* barre d'ajout : ★ Prioritaire en pastille + raccourcis de date */
.subtabs form.taskadd .starchk,form.taskadd .starchk{cursor:pointer;margin:0}
form.taskadd .starchk input{position:absolute;opacity:0;width:0!important;height:0!important;pointer-events:none}
form.taskadd .starchk span{display:inline-flex;align-items:center;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:99px;font-size:.82rem;font-weight:600;color:var(--mut);white-space:nowrap;transition:.15s}
form.taskadd .starchk:hover span{border-color:rgba(var(--acc),.6);color:var(--ink)}
form.taskadd .starchk input:checked+span{background:rgba(var(--acc),.18);border-color:var(--accent);color:var(--accent2);box-shadow:0 0 12px rgba(var(--acc),.25)}
form.taskadd .starchk input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.dchips{display:inline-flex;gap:3px;flex:0 0 auto}
.dchips button{height:26px;padding:0 8px;border:1px solid var(--line);border-radius:99px;background:none;color:var(--mut);font-size:.74rem;cursor:pointer;white-space:nowrap}
.dchips button:hover{border-color:var(--accent);color:var(--accent2)}
@media(max-width:1300px) and (min-width:861px){.subtabs .dchips{display:none}}
@media(max-width:860px){form.taskadd .dchips{grid-column:1/-1}}
/* ligne de tâche */
.goals.tasks .task{position:relative;border-left:3px solid transparent;transition:opacity .35s,transform .35s,max-height .35s,border-color .2s}
.goals.tasks .task.prio{border-left-color:var(--accent);box-shadow:inset 18px 0 22px -22px rgba(var(--acc),.9)}
.goals.tasks .task.late{border-left-color:#e5484d;box-shadow:inset 18px 0 22px -22px rgba(229,72,77,.9)}
.goals.tasks .task.leaving{opacity:0;transform:translateX(24px)}
.star{background:none;border:0;padding:0 2px;font-size:1rem;line-height:1;color:var(--mut);opacity:.45;cursor:pointer;transition:.15s}
.star:hover{opacity:1;color:var(--accent2);transform:scale(1.15)}.star.on{opacity:1;color:var(--accent);text-shadow:0 0 10px rgba(var(--acc),.7)}
.ttag{flex:0 0 auto;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:1px 9px;border-radius:99px;font-size:.72rem;font-weight:600;text-decoration:none;border:1px solid var(--line);color:var(--mut);transition:.15s}
.ttag.proj{border-color:rgba(var(--acc),.4);color:var(--accent2);background:rgba(var(--acc),.07)}
.ttag.cli{border-color:rgba(120,170,255,.35);color:#9db8e8;background:rgba(120,170,255,.07)}
.ttag:hover{border-color:var(--accent);filter:brightness(1.2)}
.pgbtn{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;border:1px solid var(--line);background:none;color:var(--ink);border-radius:99px;padding:1px 8px 1px 6px;font:inherit;cursor:pointer;transition:.15s}
.pgbtn:not(.static):hover{border-color:var(--accent);box-shadow:0 0 10px rgba(var(--acc),.25)}
.pgbtn.static{cursor:default;border-style:dashed}
.pgb{display:block;width:44px;height:5px;border-radius:99px;background:rgba(var(--acc),.15);overflow:hidden}
.pgb u{display:block;height:100%;text-decoration:none;border-radius:99px;background:linear-gradient(90deg,rgba(var(--acc),.6),var(--accent2));transition:width .35s}
.goals.tasks .task .pgbtn .goalpct{min-width:32px;font-size:.72rem}
.goals.tasks .task .goalhd>.goalpct{display:none}
.goals.tasks .task .goalhd{flex:1 1 100%}
.moreb{background:none;border:0;color:var(--mut);cursor:pointer;font:inherit;font-weight:700;padding:0 6px;border-radius:6px}.moreb:hover,.card.open .moreb{color:var(--accent2);background:rgba(var(--acc),.1)}
.taskfold{display:grid;gap:8px;padding:6px 0 4px;flex:1 0 100%}.taskfold[hidden]{display:none}
.taskmeta:empty{display:none}
.goals.tasks .task .taskfold .steps{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.taskfold .steps li{display:flex;align-items:center;gap:6px}.taskfold .steps li .taskbtn{flex:1;font-size:.86rem}
.taskfold .stepadd{display:flex;gap:6px}.taskfold .stepadd input{flex:1}
/* objectifs : barre néon + catégories */
.bar.neon{height:12px;background:rgba(var(--acc),.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.4)}
.bar.neon>i{background:linear-gradient(90deg,rgba(var(--acc),.55),var(--accent) 60%,var(--accent2));box-shadow:0 0 8px rgba(var(--acc),.75),0 0 18px rgba(var(--acc),.4)}
.goal.done .bar.neon>i{background:linear-gradient(90deg,#2f7d4f,var(--ok));box-shadow:0 0 8px rgba(88,192,138,.6)}
.gcats{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 10px}
.gchip{display:inline-flex;gap:6px;align-items:center;height:30px;padding:0 12px;border-radius:99px;border:1px solid var(--line);background:none;color:var(--mut);font-size:.82rem;font-weight:600;cursor:pointer;transition:.15s}
.gchip i{font-style:normal;font-size:.7rem;padding:0 6px;border-radius:99px;background:rgba(255,255,255,.07)}
.gchip:hover{color:var(--ink);border-color:rgba(var(--acc),.5)}
.gchip.on{background:rgba(var(--acc),.16);border-color:var(--accent);color:var(--accent2);box-shadow:0 0 12px rgba(var(--acc),.2)}
.goals.goalslist .gcat{display:grid;gap:10px;margin-bottom:12px}.gcat[hidden]{display:none}
.gcath{margin:6px 0 0;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent3);font-weight:700}
.gpill{flex:0 0 auto;padding:1px 9px;border-radius:99px;font-size:.7rem;font-weight:600;border:1px solid rgba(var(--acc),.4);color:var(--accent2);background:rgba(var(--acc),.07);white-space:nowrap}
.gmeta{display:flex;justify-content:space-between;align-items:center;font-size:.76rem;margin-top:-4px}
.goalcat-in{max-width:190px}
/* bascule Tâches ↔ Échéances : les onglets restent en place pendant la transition */
nav.hubtabs{view-transition-name:hubtabs}
@media (prefers-reduced-motion:reduce){.goals.tasks .task,.pgb u{transition:none}}

.goalsbar .goaladd{flex-wrap:nowrap;max-width:860px}
.goalsbar .goaladd input[name=category]{flex:0 1 170px;min-width:100px;padding:4px 10px}
@media(max-width:860px){.goalsbar .goaladd{flex-wrap:wrap}.goalsbar .goaladd input[name=title]{flex:1 1 100%}}
.goals.goalslist .ngoal .goalhd{flex:1 0 100%}
.goals.goalslist .ngoal .bar.neon{flex:1 1 200px;height:8px;margin:0}
.goals.goalslist .ngoal .gmeta{flex:0 0 auto;margin:0;gap:10px;display:flex}
.goals.goalslist .ngoal .taskfold{flex:1 0 100%}
.goals.goalslist .ngoal .taskfold .steps{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.goals.goalslist .ngoal{padding:5px 12px 6px;gap:3px 12px}
@media(max-width:640px){.goals.goalslist .ngoal .bar.neon{display:block}}
.goals.goalslist .gcat[hidden]{display:none}

.gslide[hidden]{display:none!important}
.goals .stepcount{flex:0 0 auto;font-size:.72rem;white-space:nowrap}.goals .stepcount:empty{display:none}
.goals.tasks .task .goalhd .stepcount{margin-left:2px}
.taskfold .steps li .btn{min-height:0;height:24px;padding:0 9px;line-height:1}
.taskfold .steps li{min-height:0}
.taskfold .goalslide{white-space:nowrap}.taskfold .goalslide select{width:auto;max-width:340px;min-width:180px}
.taskfold .goalslide input[data-f=category]{flex:0 1 280px;padding:4px 10px;border:1px solid var(--line);background:var(--bg);border-radius:8px}
.goals.goalslist .ngoal .goalpct{min-width:44px;white-space:nowrap}
.goalsbar .goaladd input[name=category]{flex:0 1 190px;min-width:150px}
@media(max-width:860px){form.taskadd .dchips{display:none}}

/* ===== étape 75 : Carte « Cinéma » (fond sombre, badges, popup verre, adresses introuvables) ===== */
.mapcard{padding:12px 14px 10px}
.maptools{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;margin-bottom:10px}
.mchips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.mchip{--c:#999;display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 13px 0 11px;border-radius:99px;border:1px solid var(--line);background:transparent;color:var(--mut);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:.18s;white-space:nowrap}
.mchip i{width:9px;height:9px;border-radius:50%;background:var(--c);opacity:.35;box-shadow:none;transition:.18s}
.mchip b{font-size:.7rem;padding:0 6px;border-radius:99px;background:rgba(255,255,255,.07);font-weight:700}
.mchip:hover{color:var(--ink);border-color:var(--c)}
.mchip.on{color:var(--ink);border-color:color-mix(in srgb,var(--c) 70%,transparent);background:color-mix(in srgb,var(--c) 14%,transparent)}
.mchip.on i{opacity:1;box-shadow:0 0 9px var(--c)}
.mchip.static{cursor:default;border-style:dashed}.mchip.static i{opacity:1;box-shadow:0 0 9px var(--c)}
.mchip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.msum{margin-left:auto;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;padding:5px 14px;border-radius:99px;border:1px solid var(--line);background:rgba(255,255,255,.03);font-size:.82rem;color:var(--mut)}
.msum b{color:var(--ink)}.msum em{font-style:normal;color:var(--accent3)}
.msum-warn{color:#ffb454!important;background:none;border:0;font:inherit;padding:0}
button.msum-warn{cursor:pointer;text-decoration:underline dotted}.msum-warn b{color:#ffb454}
.mapwrap{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line);min-height:420px}
#map.darkmap{background:#0f172a}
#map{height:100%;width:100%;border-radius:0}
#map.placing{cursor:crosshair}#map.placing .leaflet-grab{cursor:crosshair}
.mebar{margin-top:10px}.mapfoot{margin:8px 0 0;font-size:.74rem}
/* épingles */
.lpin{background:none;border:0}.lpin svg{display:block;filter:drop-shadow(0 0 7px color-mix(in srgb,currentColor 0%,transparent)) drop-shadow(0 3px 4px rgba(0,0,0,.55));transition:transform .15s}
.lpin:hover svg{transform:translateY(-3px) scale(1.12)}.lpin.dim svg{opacity:.6}
.lpin.studio svg{filter:drop-shadow(0 0 10px rgba(197,155,39,.85)) drop-shadow(0 3px 4px rgba(0,0,0,.6))}
/* commandes Leaflet assorties au thème sombre */
.darkmap .leaflet-bar a,.darkmap .leaflet-bar a:hover{background:rgba(20,22,27,.88);color:var(--ink);border-bottom-color:var(--line)}
.darkmap .leaflet-bar{border:1px solid var(--line);box-shadow:0 4px 14px rgba(0,0,0,.4)}
.darkmap .leaflet-control-attribution{background:rgba(15,23,42,.7);color:var(--mut)}.darkmap .leaflet-control-attribution a{color:var(--accent2)}
/* popup en verre dépoli */
.glasspop .leaflet-popup-content-wrapper{background:rgba(18,21,28,.72);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);border:1px solid rgba(197,155,39,.38);border-radius:16px;color:var(--ink);box-shadow:0 14px 44px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.07)}
.glasspop .leaflet-popup-tip{background:rgba(18,21,28,.8);border:1px solid rgba(197,155,39,.38);box-shadow:none}
.glasspop .leaflet-popup-content{margin:14px 16px 14px;font:inherit}.glasspop .leaflet-popup-close-button{color:var(--mut);top:6px;right:8px}.glasspop .leaflet-popup-close-button:hover{color:var(--accent2)}
:root[data-theme=light] .glasspop .leaflet-popup-content-wrapper,:root[data-theme=light] .glasspop .leaflet-popup-tip{background:rgba(255,255,255,.82)}
.mp{--c:#C59B27;display:grid;gap:8px;min-width:220px}
.mp-hd{display:flex;align-items:center;gap:8px;padding-right:14px}.mp-hd i{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c)}.mp-hd b{font-size:1rem;line-height:1.25}
.mp-tags{display:flex;gap:5px;flex-wrap:wrap}
.mp-tag{padding:1px 9px;border-radius:99px;font-size:.68rem;font-weight:700;letter-spacing:.03em;border:1px solid var(--line);color:var(--mut);background:rgba(255,255,255,.04)}
.mp-tag.st{color:var(--c);border-color:color-mix(in srgb,var(--c) 55%,transparent);background:color-mix(in srgb,var(--c) 12%,transparent)}
.mp-tag.pro{color:#9db8e8;border-color:rgba(120,170,255,.4)}.mp-tag.vip{color:var(--accent2);border-color:rgba(var(--acc),.5);background:rgba(var(--acc),.1)}
.mp-row{display:flex;justify-content:space-between;gap:12px;font-size:.84rem;color:var(--mut)}.mp-row b{color:var(--ink)}
.mp-addr{font-size:.76rem;color:var(--mut);line-height:1.35}
.mp-act{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.mp-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:10px;font-size:.78rem;font-weight:700;text-decoration:none;color:var(--ink)!important;border:1px solid var(--line);background:rgba(255,255,255,.05);transition:.15s}
.mp-btn:hover{border-color:var(--accent);background:rgba(var(--acc),.12)}
.mp-btn.pri{flex:1 1 100%;justify-content:center;background:linear-gradient(135deg,#d9b24c,#b08a2a);color:#17140b!important;border-color:transparent;box-shadow:0 4px 14px rgba(197,155,39,.35)}
.mp-btn.pri:hover{filter:brightness(1.08);background:linear-gradient(135deg,#e3c47a,#b8922f)}
/* panneau coulissant : adresses introuvables */
.unfdrawer{position:absolute;top:0;right:0;bottom:0;width:min(370px,100%);z-index:700;display:flex;flex-direction:column;gap:8px;padding:14px;overflow:auto;background:rgba(15,18,24,.82);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-left:1px solid rgba(197,155,39,.35);box-shadow:-12px 0 40px rgba(0,0,0,.45);transform:translateX(105%);transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.unfdrawer[hidden]{display:none}.unfdrawer.open{transform:none}
.unfdrawer header{display:flex;align-items:center;justify-content:space-between;color:#ffb454}.unfdrawer header b{font-size:1rem}
.unfdrawer p{margin:0;font-size:.78rem}.unfclose{background:none;border:0;color:var(--mut);font-size:1.4rem;line-height:1;cursor:pointer}.unfclose:hover{color:var(--ink)}
:root[data-theme=light] .unfdrawer{background:rgba(255,255,255,.88)}
.unf{display:grid;gap:7px;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.04)}
.unf-hd{display:flex;align-items:center;justify-content:space-between;gap:8px}.unf-hd a{color:var(--ink);text-decoration:none}
.unf input{width:100%;font-size:.84rem}.unf-act{display:flex;gap:6px;flex-wrap:wrap}.unf-msg{font-size:.76rem;min-height:1em}
.unfok{color:var(--ok);font-weight:600;text-align:center;padding:18px 0}
.placebanner{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:800;display:flex;align-items:center;gap:12px;padding:8px 8px 8px 16px;border-radius:99px;background:rgba(15,18,24,.9);border:1px solid var(--accent);color:var(--accent2);font-weight:600;font-size:.86rem;box-shadow:0 8px 28px rgba(0,0,0,.5)}
.placebanner[hidden]{display:none}
@media(max-width:860px){.msum{margin-left:0}.mchip{height:30px;padding:0 10px}.unfdrawer{width:100%}.mapcard{padding:10px}}
@media(max-width:860px){
 form.taskadd{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
 form.taskadd input[name=title]{grid-column:1/-1!important;grid-row:auto!important}
 form.taskadd input[type=date]{grid-column:1!important;grid-row:auto!important;min-width:0;width:100%;font-size:14px}
 form.taskadd select{grid-column:2!important;grid-row:auto!important;min-width:0;width:100%;max-width:none}
 form.taskadd .starchk{grid-column:1!important;grid-row:auto!important;min-height:0}form.taskadd .starchk span{height:40px;width:100%;justify-content:center}
 form.taskadd .btn{grid-column:2!important;grid-row:auto!important;width:100%;height:40px}
 .mchips{flex-wrap:nowrap;overflow-x:auto;width:100%;padding-bottom:2px;scrollbar-width:none}.mchips::-webkit-scrollbar{display:none}.mchip.static{display:none}
}
@media(max-width:860px){.goals.tasks .task .goaltitle{flex:1 1 45%!important;min-width:0}.goals.tasks .task .goalhd{gap:6px 8px}.goals.tasks .task.card{padding:6px 10px}}

/* ===== étape 76 : centre d'alertes ===== */
.alertcard{padding:10px 14px 8px;margin-bottom:10px}
.alertcard h2{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:.95rem}
.al-n{min-width:22px;height:22px;padding:0 7px;border-radius:99px;background:#ffa94d;color:#1a1100;font-size:.74rem;display:inline-grid;place-items:center}
.al-n.bad{background:#ff4d4f;color:#fff;box-shadow:0 0 12px rgba(255,77,79,.55)}
.al-all{margin-left:auto;font-size:.76rem;font-weight:600;color:var(--accent2);text-decoration:none}
.al-list{display:grid;gap:6px}
.al{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:12px;border:1px solid var(--line);border-left-width:4px;background:rgba(255,255,255,.03);text-decoration:none;color:var(--ink);transition:.15s}
.al:hover{background:rgba(255,255,255,.06);transform:translateX(2px)}
.al i{font-style:normal;font-size:1.15rem;flex:0 0 auto}
.al span{flex:1;min-width:0;display:grid;gap:1px}.al b{font-size:.88rem;line-height:1.3}.al small{color:var(--mut);font-size:.76rem;line-height:1.3}
.al em{font-style:normal;flex:0 0 auto;font-size:.74rem;font-weight:700;color:var(--mut)}
.al.bad{border-color:rgba(255,77,79,.45);border-left-color:#ff4d4f;background:linear-gradient(90deg,rgba(255,77,79,.14),rgba(255,77,79,.03))}
.al.bad em{color:#ff8587}
.al.warn{border-color:rgba(255,169,77,.4);border-left-color:#ffa94d;background:linear-gradient(90deg,rgba(255,169,77,.12),rgba(255,169,77,.03))}
.al.warn em{color:#ffc078}
.al.info{border-left-color:#4c9aff}
.al-ok{margin:0;font-size:.82rem;color:var(--ok)}
.al-more{font-size:.78rem;font-weight:600;color:var(--accent2);text-decoration:none;padding:2px 4px}
:root[data-theme=light] .al{background:#fff}
/* pastille rouge de la barre du bas (téléphone) */
.tabbar a,.tabbar button{position:relative}
.redot{position:absolute;top:3px;left:calc(50% + 6px);min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:#ff3b30;color:#fff;font-size:.62rem;font-weight:800;line-height:17px;text-align:center;border:2px solid rgba(10,11,14,.95);box-sizing:content-box;animation:alPulse 2s ease-in-out infinite}
@keyframes alPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,59,48,.55)}50%{box-shadow:0 0 0 6px rgba(255,59,48,0)}}
html[data-theme=light] .redot{border-color:#fff}
@media(prefers-reduced-motion:reduce){.redot{animation:none}}
@media(max-width:700px){.al{padding:9px 10px}.al em{display:none}}

/* ===== étape 77 : liste de matériel « sac & valise » (mode terrain, au pouce) ===== */
.kb-portrait{color:#ffcf7a;border-color:rgba(255,207,122,.45);background:rgba(255,207,122,.1)}
.terr{max-width:760px;margin:0 auto;display:grid;gap:10px}
.terr-intro{margin:0;font-size:.84rem}
.tcard{display:grid;gap:7px;padding:14px 16px;border-radius:16px;border:1px solid var(--line);background:var(--card);text-decoration:none;color:var(--ink);transition:.15s}
.tcard:hover{border-color:rgba(var(--acc),.5)}.tcard:active{transform:scale(.99)}
.tcard.ready{border-color:rgba(88,192,138,.55);box-shadow:0 0 18px rgba(88,192,138,.15)}
.tcard.risk{border-color:rgba(255,77,79,.6);box-shadow:0 0 18px rgba(255,77,79,.18)}
.tc-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.tc-top b{font-size:1.02rem}
.tc-sub{font-size:.8rem}.tc-foot{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;font-weight:600}
.tc-alert{font-style:normal;color:#ff8587}
.gbar{height:8px;border-radius:99px;background:rgba(88,192,138,.14);overflow:hidden}
.gbar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#2f9c68,#58c08a);box-shadow:0 0 10px rgba(88,192,138,.55);transition:width .35s cubic-bezier(.2,.8,.2,1)}
.gbar.big{height:14px}.gbar.full>i{background:linear-gradient(90deg,#3ecf8e,#7af0b4);box-shadow:0 0 16px rgba(88,192,138,.85)}
.gmeta2{font-size:.84rem}
.gwarn{padding:12px 14px;border-radius:14px;background:linear-gradient(90deg,rgba(255,77,79,.2),rgba(255,77,79,.07));border:1px solid rgba(255,77,79,.55);color:#ffb3b4;font-size:.9rem;animation:gwPulse 1.6s ease-in-out infinite}
.gwarn[hidden]{display:none}
@keyframes gwPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,77,79,.35)}50%{box-shadow:0 0 0 7px rgba(255,77,79,0)}}
.gready{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--card);transition:.3s}
.gready .gr-i{font-size:1.7rem}.gready span:nth-child(2){flex:1;display:grid}.gready small{color:var(--mut);font-size:.8rem}.gr-pct{font-size:1.25rem}
.gready.on{border-color:rgba(88,192,138,.7);background:linear-gradient(90deg,rgba(88,192,138,.2),rgba(88,192,138,.05));box-shadow:0 0 26px rgba(88,192,138,.3)}
.gready.on .gr-pct{color:#7af0b4}.gready.on .gr-i{animation:gwPop .5s ease}
@keyframes gwPop{0%{transform:scale(.4)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
.glist{display:grid;gap:8px}
.grow{display:flex;align-items:stretch;gap:6px}
.gitem{flex:1;display:flex;align-items:center;gap:14px;min-height:64px;padding:10px 16px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:1.02rem;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,border-color .15s,transform .1s;touch-action:manipulation}
.gitem:active{transform:scale(.98)}
.gbox{flex:0 0 auto;width:30px;height:30px;border-radius:9px;border:2px solid var(--mut);display:grid;place-items:center;transition:.15s}
.gtxt{flex:1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;line-height:1.3}
.gtxt em{font-style:normal;font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:99px;color:#ffc078;border:1px solid rgba(255,169,77,.5);background:rgba(255,169,77,.1)}
.grow.done .gitem{background:rgba(88,192,138,.12);border-color:rgba(88,192,138,.5)}
.grow.done .gbox{background:#58c08a;border-color:#58c08a}.grow.done .gbox::after{content:"✓";color:#0b1a12;font-weight:900;font-size:1.05rem}
.grow.done .gtxt{color:var(--mut);text-decoration:line-through;text-decoration-color:rgba(88,192,138,.6)}
.gdel{width:44px;border-radius:14px;border:1px solid var(--line);background:none;color:var(--mut);font-size:1.3rem;cursor:pointer}.gdel:hover{color:#ff8587;border-color:rgba(255,77,79,.5)}
.grow form{display:flex}
.gadd{display:flex;gap:8px}.gadd input{flex:1;min-height:48px;font-size:1rem}.gadd .btn{min-height:48px}
.gtools{display:flex;gap:8px;flex-wrap:wrap}.gtools form{display:inline}
.gearcard .gbar{margin-top:2px}
.kit textarea{width:100%;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.88rem;line-height:1.5}
@media(max-width:700px){.gitem{min-height:68px;font-size:1.05rem}.gdel{width:48px}}
@media(prefers-reduced-motion:reduce){.gwarn,.gready.on .gr-i{animation:none}}

/* carte sombre : filtre sur les tuiles OpenStreetMap (sans clé d'accès) ; épingles et popups ne sont pas touchés */
.darkmap .leaflet-tile-pane{filter:invert(100%) hue-rotate(180deg) brightness(.92) contrast(.92) saturate(.65)}

/* ===== Étape 78 : Accueil, desktop (cockpit réorganisé) et smartphone (< 768 px : le terrain d'abord) ===== */
.sm-only{display:none}
/* desktop : indicateurs financiers clés en grand, à côté des raccourcis */
.mt.fin{min-height:112px}
.mt.fin>b,.kpi.mt.fin>b{font-size:1.85rem;letter-spacing:-.01em}
.mt.fin>span{font-size:.72rem}
/* météo des tournages : encart mis en valeur, pleine largeur, avec résumé d'alertes */
.meteocard.hl{border:1px solid rgba(var(--acc),.45);background:linear-gradient(135deg,rgba(var(--acc),.12),rgba(var(--acc),.03) 55%,transparent);box-shadow:0 0 0 1px rgba(var(--acc),.08),0 18px 40px -22px rgba(var(--acc),.5)}
.meteocard.hl>h2{display:flex;align-items:center;gap:8px;font-size:1.1rem}
.metretry{margin-left:auto;width:32px;height:32px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--mut);font-size:1rem;cursor:pointer}
.metretry:hover{color:var(--accent);border-color:rgba(var(--acc),.6)}
.metsum{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.metsum[hidden]{display:none}
.metsum .ms{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:.8rem;font-weight:600;border:1px solid var(--line);background:rgba(255,255,255,.03)}
.metsum .ms.bad{border-color:rgba(229,72,77,.7);background:rgba(229,72,77,.14);color:#ff8e92}
.metsum .ms.warn{border-color:rgba(224,160,58,.7);background:rgba(224,160,58,.13);color:#f0b95a}
.metsum .ms.ok{border-color:rgba(63,185,122,.6);background:rgba(63,185,122,.12);color:#5fd49a}
.metsum .ms.off{color:var(--mut)}
.mt-fb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border-radius:10px;border:1px dashed rgba(var(--acc),.45);background:rgba(var(--acc),.07);font-size:.8rem;color:inherit;text-decoration:none}
.mt-fb.off{border-color:var(--line);background:rgba(255,255,255,.03);color:var(--mut)}
.mt-fb a,.mt-fb b{margin-left:auto;color:var(--accent);font-weight:700;font-size:.8rem;text-decoration:none}
/* smartphone : le terrain d'abord */
@media(max-width:767px){
 .sm-only{display:block}
 .md-only,.mt.stat-sec{display:none!important}
 .mhome{display:grid;gap:12px;margin:0 0 14px}
 .nshoot{position:relative;display:grid;gap:8px;padding:14px 14px 12px;border-radius:18px;border:1px solid rgba(var(--acc),.5);background:linear-gradient(145deg,rgba(var(--acc),.2),rgba(var(--acc),.05) 60%,transparent);box-shadow:0 18px 38px -22px rgba(var(--acc),.7)}
 .nshoot.imminent{border-color:var(--accent);animation:nsGlow 2.4s ease-in-out infinite}
 .nshoot.empty{border-color:var(--line);background:rgba(255,255,255,.03);box-shadow:none}
 .ns-k{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mut)}
 .ns-main{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;min-height:48px}
 .ns-cd{flex:none;min-width:76px;text-align:center;font-size:1.5rem;line-height:1.05;font-weight:800;color:var(--accent);padding:8px 10px;border-radius:14px;background:rgba(0,0,0,.25);border:1px solid rgba(var(--acc),.4)}
 .ns-t{display:grid;gap:2px;min-width:0}.ns-t strong{font-size:1.05rem;line-height:1.2;overflow-wrap:anywhere}.ns-t small,.ns-place{color:var(--mut);font-size:.8rem}
 .ns-place{overflow-wrap:anywhere}
 .ns-w{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center;padding:10px 12px;border-radius:12px;border:1px solid var(--line);border-left:4px solid var(--line);background:rgba(0,0,0,.18)}
 .ns-w.ok{border-left-color:#3fb97a}.ns-w.warn{border-left-color:#e0a03a}.ns-w.bad{border-left-color:#e5484d}
 .ns-w .mt-i{grid-row:1/3;font-size:2.2rem;line-height:1}
 .ns-wm{display:grid}.ns-wm b{font-size:1.15rem}.ns-wm small{color:var(--mut);font-size:.78rem}
 .ns-wc{grid-column:1/-1;display:flex;gap:14px;font-size:.82rem;color:var(--mut)}
 .ns-w .mt-v,.ns-gold{grid-column:1/-1}.ns-gold{color:var(--accent);font-size:.78rem}
 .ns-w>.mt-fb{grid-column:1/-1}
 .ns-w .muted{grid-column:1/-1;font-size:.82rem}
 .ns-go{display:flex;align-items:center;justify-content:center;gap:6px;min-height:46px;border-radius:12px;background:var(--gold);color:var(--accent-ink);font-weight:700;text-decoration:none}
 .m-acts{display:grid;gap:8px}
 .m-acts h2{margin:0;font-size:.95rem}
 .m-act{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 12px;border-radius:14px;border:1px solid var(--line);border-left:4px solid var(--line);background:rgba(255,255,255,.03);color:inherit;text-decoration:none}
 .m-act.p0{border-left-color:#e5484d}.m-act.p1{border-left-color:#e0a03a}.m-act.p2{border-left-color:rgba(var(--acc),.8)}
 .m-act>i{font-style:normal;font-size:1.25rem;width:28px;text-align:center;flex:none}
 .m-act>span{display:grid;gap:1px;min-width:0;flex:1}.m-act b{font-size:.92rem;line-height:1.25;overflow-wrap:anywhere}.m-act small{color:var(--mut);font-size:.78rem;line-height:1.3}
 .m-act em{font-style:normal;color:var(--mut);font-size:1.4rem}
 .m-ok{margin:0;padding:12px;border-radius:14px;border:1px dashed rgba(63,185,122,.5);color:#5fd49a;font-size:.9rem}
 .m-more{font-size:.84rem;color:var(--accent);text-decoration:none;padding:4px 2px}
 .m-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
 .m-quick a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;padding:6px 4px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:inherit;font-size:.74rem;text-decoration:none;text-align:center}
 .m-quick a i{font-style:normal;background:#e5484d;color:#fff;border-radius:999px;padding:0 6px;font-size:.7rem}
 /* le reste de l'accueil devient discret : 3 lignes par encart, finances en deux tuiles compactes */
 .agenda .card a.row:nth-of-type(n+4){display:none}
 .mt.fin{min-height:84px}.mt.fin>b,.kpi.mt.fin>b{font-size:1.35rem}
 .fab{width:60px;height:60px;border-radius:20px;font-size:1.9rem}
}
@keyframes nsGlow{0%,100%{box-shadow:0 0 0 0 rgba(var(--acc),0),0 18px 38px -22px rgba(var(--acc),.7)}50%{box-shadow:0 0 0 4px rgba(var(--acc),.18),0 18px 38px -22px rgba(var(--acc),.9)}}
@media(prefers-reduced-motion:reduce){.nshoot.imminent{animation:none}}
/* desktop : ligne du haut = raccourcis + deux indicateurs financiers ; chiffres secondaires en bandeau régulier */
@media(min-width:861px){
 [data-reorder=home2]>.shortcuts{grid-column:1/-1}
 [data-reorder=home2]>.mt.fin{grid-column:span 2}
 [data-reorder=home2]>.mt.fin{grid-column:span 2}
}
@media(min-width:1180px){
 [data-reorder=home2]>.shortcuts{grid-column:span 2}
 [data-reorder=home2]>.mt.fin{grid-column:span 2}
 [data-reorder=home2]>.mt.smicmini.stat-sec,[data-reorder=home2]>.mt.potcard.stat-sec,[data-id=parrainages].stat-sec{grid-column:span 2}
 .mt.stat-sec{min-height:78px}
}

/* ===== Étape 79 : fiche client, coordonnées et actions d'abord, chiffres ensuite ===== */
.cf-hero{gap:12px 20px}
.cf-contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.cf-line{display:flex;align-items:center;gap:12px;min-width:0;min-height:56px;padding:9px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03);color:inherit;text-decoration:none;transition:border-color .15s,background .15s}
a.cf-line:hover{border-color:rgba(var(--acc),.6);background:rgba(var(--acc),.08)}
.cf-line>i{flex:none;font-style:normal;width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:rgba(var(--acc),.14);font-size:1.05rem}
.cf-line>span{display:grid;gap:1px;min-width:0;flex:1}
.cf-line small{font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:var(--mut)}
.cf-line b{font-size:1rem;font-weight:600;overflow-wrap:anywhere;line-height:1.25}
.cf-line.tel b{font-size:1.1rem;letter-spacing:.01em}
.cf-line>em{flex:none;font-style:normal;font-size:1.2rem}
.cf-line.empty{border-style:dashed;color:var(--mut)}.cf-line.empty b{font-weight:500;color:var(--mut)}.cf-line.empty>i{filter:grayscale(1);opacity:.7}
.cf-line.st>i{font-size:.8rem;color:var(--accent)}
.cf-st-more{font-weight:400;font-size:.85rem;color:var(--mut)}
.cf-edit{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);color:var(--mut);text-decoration:none}
.cf-edit:hover{color:var(--accent);border-color:rgba(var(--acc),.6)}
.cf-quick .btn{min-height:44px;display:inline-flex;align-items:center}
/* chiffres clés : conservés dans le bandeau, sous les coordonnées et les actions, en version compacte */
.cf-hero .cf-kpis{gap:8px;margin-top:2px}
.cf-hero .cf-kpi{padding:9px 13px}.cf-hero .cf-kpi b{font-size:1.3rem}
@media(max-width:860px){
 .cf-hero{padding:12px;gap:10px}
 .cf-contact{grid-template-columns:1fr;gap:6px}
 .cf-line{min-height:54px;padding:8px 12px}
 .cf-quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .cf-quick .btn{justify-content:center;min-height:48px;padding:8px 6px;font-size:.88rem;white-space:normal;text-align:center}
 .cf-quick .btn:first-child{grid-column:1/-1}
}
.cf-line.mail b{font-size:.95rem}

/* ===== Étape 80 : Accueil mobile — prochain tournage dépliable, cloche dans les onglets, « À faire » en bas ===== */
@media(max-width:767px){
 .m-quick{grid-template-columns:repeat(3,1fr)}
 .nshoot{gap:0;padding:0;overflow:hidden}
 .ns-head{display:grid;gap:8px;width:100%;padding:14px 14px 12px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
 .ns-head:active{background:rgba(var(--acc),.08)}
 .ns-k{display:flex;align-items:center;justify-content:space-between;gap:8px}
 .ns-hint{font-style:normal;text-transform:none;letter-spacing:0;font-size:.72rem;color:var(--accent);opacity:.85;transition:opacity .2s,max-height .3s}
 .nshoot.open .ns-hint{opacity:0}
 .ns-main{display:flex;align-items:center;gap:12px;min-height:48px}
 .ns-place{display:block;color:var(--mut);font-size:.82rem;overflow-wrap:anywhere}
 .ns-chev{flex:none;margin-left:auto;font-style:normal;font-size:1.6rem;line-height:1;color:var(--accent);transition:transform .4s cubic-bezier(.3,1.4,.5,1);transform:rotate(90deg);animation:nsNudge 2.6s ease-in-out 1.2s 3}
 .nshoot.open .ns-chev{transform:rotate(-90deg);animation:none}
 .ns-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.2,.8,.2,1)}
 .nshoot.open .ns-body{grid-template-rows:1fr}
 .ns-clip{overflow:hidden;min-height:0}
 .ns-inner{display:grid;gap:10px;padding:2px 14px 14px;opacity:0;transform:translateY(-10px);transition:opacity .25s,transform .45s cubic-bezier(.2,.8,.2,1)}
 .nshoot.open .ns-inner{opacity:1;transform:none;transition-delay:.08s}
 .nshoot.open .ns-inner>*{animation:nsUp .5s cubic-bezier(.2,.9,.3,1.15) both}
 .nshoot.open .ns-inner>*:nth-child(2){animation-delay:.12s}
 .ns-btns{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px}
 .ns-open{display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:12px;border:1px solid rgba(var(--acc),.5);color:var(--accent);font-weight:600;text-decoration:none}
 .m-acts{margin-top:16px}
 /* onglets de l'Accueil : la cloche des alertes (avec son nombre) se met à côté de « Aujourd'hui », sans texte */
 .hubtabs[aria-label="Accueil"] a[href="/alertes"] span{display:none}
 .hubtabs[aria-label="Accueil"] a[href="/alertes"]{padding:7px 12px;gap:0}
 main .subtabs.hubtabs[aria-label="Accueil"] a[href="/alertes"] .tabbadge{position:absolute;top:-1px;right:-3px;margin:0;box-shadow:0 0 0 2px var(--bg,#0f1115)}
 .hubtabs[aria-label="Accueil"] a:not([href="/alertes"]) .ic{display:none}
 .hubtabs[aria-label="Accueil"]{gap:4px}
 .hubtabs[aria-label="Accueil"] a{padding:7px 8px;font-size:.8rem}
 .hubtabs[aria-label="Accueil"] a[href="/alertes"]{padding:7px 10px}
}
@keyframes nsUp{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
@keyframes nsNudge{0%,100%{transform:rotate(90deg) translateX(0)}50%{transform:rotate(90deg) translateX(5px)}}
@media(prefers-reduced-motion:reduce){.ns-body,.ns-inner,.ns-chev{transition:none}.nshoot.open .ns-inner>*,.ns-chev{animation:none}}

/* mode clair : fonds neutres (blanc / gris très clair), l'or reste en simple accent */
html[data-theme=light] .nshoot{background:#fff;border-color:rgba(var(--acc),.45);box-shadow:0 10px 26px -18px rgba(20,24,32,.35)}
html[data-theme=light] .nshoot.empty{background:#fff}
html[data-theme=light] .ns-cd{background:rgba(var(--acc),.1);color:var(--accent2);border-color:rgba(var(--acc),.4)}
html[data-theme=light] .ns-w{background:#f6f7f9;border-color:var(--line)}
html[data-theme=light] .ns-w.ok{border-left-color:#3fb97a}html[data-theme=light] .ns-w.warn{border-left-color:#e0a03a}html[data-theme=light] .ns-w.bad{border-left-color:#e5484d}
html[data-theme=light] .ns-gold,html[data-theme=light] .ns-hint{color:var(--accent2)}
html[data-theme=light] .ns-open{background:#fff;color:var(--accent2)}
html[data-theme=light] .m-act,html[data-theme=light] .m-quick a,html[data-theme=light] .cf-line{background:#fff;border-color:var(--line)}
html[data-theme=light] .meteocard.hl{background:#fff;border-color:rgba(var(--acc),.4);box-shadow:0 10px 26px -20px rgba(20,24,32,.35)}
html[data-theme=light] .mt-row{background:#f6f7f9}
html[data-theme=light] .mt-fb{background:#f6f7f9}
html[data-theme=light] .metsum .ms{background:#f6f7f9}
html[data-theme=light] .cf-hero{background:#fff}
html[data-theme=light] .cf-kpi,html[data-theme=light] .cf-badge{background:#f6f7f9}
html[data-theme=light] .alertcard,html[data-theme=light] .card.shortcuts{background:#fff}
html[data-theme=light] .mhome .nshoot .ns-k{color:var(--mut)}

/* ===== Étape 81 : Accueil PC premium (colonne météo à droite, finances à gauche, tâches + graphique) ===== */
.side nav a{position:relative}
.sbadge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:99px;background:#ff3b30;color:#fff;font-size:.68rem;font-weight:800;line-height:1;box-shadow:0 0 0 2px var(--side,#0b0c0e)}
html.mrail .side .sbadge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;font-size:.58rem}
.dash-main,.dash-side{min-width:0}
.dashrow{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:16px;align-items:stretch}
.dashrow>.card{margin:0}
.dashrow h2,.taskcard h2,.chartcard h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;font-size:1.02rem}
.dlink{margin-left:auto;font-size:.78rem;font-weight:600;color:var(--accent);text-decoration:none}
.dlink:hover{text-decoration:underline}
.dtasks{display:grid}
.dtask{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;min-width:0;transition:background .15s,transform .15s}
.dtask:last-child{border-bottom:0}
.dtask:hover{background:rgba(var(--acc),.07)}
.dtask>i{flex:none;width:22px;text-align:center;font-style:normal;color:var(--mut);font-size:.95rem}
.dtask.prio>i{color:var(--accent)}
.dtask>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem}
.dtask>em{flex:none;font-style:normal;font-size:.72rem;padding:3px 10px;border-radius:99px;border:1px solid var(--line);color:var(--mut)}
.dtask>em.late{color:#e5484d;border-color:rgba(229,72,77,.5);background:rgba(229,72,77,.1)}
.chtabs{margin-left:auto;display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:99px;background:rgba(255,255,255,.03)}
.chtabs button{border:0;background:none;color:var(--mut);font:inherit;font-size:.74rem;font-weight:600;padding:5px 12px;border-radius:99px;cursor:pointer;transition:background .15s,color .15s}
.chtabs button.on{background:rgba(var(--acc),.2);color:var(--accent)}
.chwrap{width:100%}.chwrap svg{display:block;width:100%;height:auto;overflow:visible}
.chg{stroke:var(--line);stroke-dasharray:3 6}
.cht{fill:var(--ink);font-size:12.5px;font-weight:700}
.chl{fill:var(--mut);font-size:12px}
.chd{fill:var(--card);stroke:#e6c56b;stroke-width:2.5;transition:r .15s}
.chd.last{fill:#e6c56b}
.chp:hover .chd{r:7}
.chline{stroke-dasharray:1400;stroke-dashoffset:1400;animation:chDraw 1.3s cubic-bezier(.3,.7,.2,1) .1s forwards}
.cha{opacity:0;animation:chFade .9s ease .5s forwards}
@keyframes chDraw{to{stroke-dashoffset:0}}@keyframes chFade{to{opacity:1}}
@media(prefers-reduced-motion:reduce){.chline{animation:none;stroke-dashoffset:0}.cha{animation:none;opacity:1}}
@media(min-width:861px){
 .reorder.dash-grid[data-reorder=home2]{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
 .reorder.dash-grid[data-reorder=home2]>*{grid-column:1/-1}
 .reorder.dash-grid[data-reorder=home2]>.finmain{grid-column:span 3}
 .reorder.dash-grid[data-reorder=home2]>.mt.stat-sec{grid-column:span 2}
 .dash-grid>.card,.dash-grid>section>.card,.dash-side .card{border-radius:18px}
 /* grands indicateurs : Encaissé cette année / À encaisser */
 .finmain{min-height:138px;padding:18px 22px!important;border-radius:20px!important;position:relative;overflow:hidden;background:linear-gradient(145deg,rgba(var(--acc),.14),rgba(var(--acc),.03) 60%,transparent),var(--card)!important;border:1px solid rgba(var(--acc),.32)!important;box-shadow:0 18px 40px -26px rgba(0,0,0,.8)}
 .finmain[data-id=aencaisser]{background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.01) 60%,transparent),var(--card)!important;border-color:var(--line)!important}
 .finmain>span{font-size:.74rem!important;letter-spacing:.1em!important}
 .finmain>b,.kpi.mt.finmain>b{font-size:2.5rem!important;letter-spacing:-.02em;font-weight:700}
 .finmain[data-id=encaisse]>b{background:linear-gradient(90deg,#f0d27e,#c9a14a);-webkit-background-clip:text;background-clip:text;color:transparent}
 .finmain::after{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(var(--acc),.18),transparent 70%);pointer-events:none}
 /* petits chiffres : en dessous, à gauche, trois par ligne */
 .mt.stat-sec{min-height:78px!important;padding:12px 16px!important;border-radius:14px!important}
 .mt.stat-sec>b,.kpi.mt.stat-sec>b{font-size:1.45rem!important}
}
@media(min-width:1180px){
 .dash{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
 .dash-side{position:sticky;top:76px;max-height:calc(100vh - 96px);overflow-y:auto;scrollbar-width:thin;border-radius:20px}
 .dash-side .meteocard{margin:0}
 .dash-side .meteolist{grid-template-columns:1fr!important}
 .dash-side .meteocard.hl>h2{font-size:1rem}
}
@media(max-width:1179px){.dash-side{margin-top:16px}}
@media(max-width:860px){.dashrow{grid-template-columns:1fr}}
.chempty{display:grid;place-items:center;min-height:170px;margin:0;text-align:center}
.dash-side .meteocard h2 .muted{display:none}
.dash-side .meteocard.hl>h2{flex-wrap:nowrap;white-space:nowrap}
html.mrail .side .sbadge{display:none}
/* mode clair : fonds neutres (plus de halo ni de teinte dorée/beige derrière les encarts) */
html[data-theme=light] .ambient{display:none}
html[data-theme=light] body{background:var(--bg)}
html[data-theme=light] .nshoot,html[data-theme=light] .nshoot.empty{background:#fff;border-color:rgba(var(--acc),.5);box-shadow:0 12px 30px -18px rgba(20,22,30,.28)}
html[data-theme=light] .ns-cd{background:#f4f5f7;border-color:var(--line);color:#8a6410}
html[data-theme=light] .ns-w{background:#f6f7f9}
html[data-theme=light] .m-act,html[data-theme=light] .m-quick a{background:#fff}
html[data-theme=light] .meteocard.hl{background:#fff;border-color:var(--line);box-shadow:0 12px 30px -22px rgba(20,22,30,.28)}
html[data-theme=light] .mt-row{background:#f7f8fa}
html[data-theme=light] .mt-fb,html[data-theme=light] .metsum .ms,html[data-theme=light] .chtabs{background:#f6f7f9}
html[data-theme=light] .mt-fb{border-color:var(--line)}
html[data-theme=light] .finmain{background:#fff!important;border-color:var(--line)!important;box-shadow:0 12px 30px -22px rgba(20,22,30,.28)}
html[data-theme=light] .finmain::after{display:none}
html[data-theme=light] .finmain[data-id=encaisse]>b{background:linear-gradient(90deg,#8a6410,#b8892a);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-theme=light] .cf-hero{background:#fff}
html[data-theme=light] .cf-line,html[data-theme=light] .cf-kpi{background:#fff}
html[data-theme=light] .cf-line.empty{background:#f6f7f9}
html[data-theme=light] .dtask:hover{background:#f6f7f9}

/* ===== Étape 81 (suite) : bouton « Météo » dans la rangée d'onglets de l'Accueil + fenêtre de détails ===== */
.hubwx{display:inline-flex;align-items:center;gap:7px;flex:none;padding:7px 14px;border-radius:99px;border:1px solid rgba(var(--acc),.5);background:rgba(var(--acc),.1);color:var(--ink);font:inherit;font-size:.92rem;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}
.hubwx:hover,.hubwx[aria-expanded=true]{background:rgba(var(--acc),.22);border-color:var(--accent)}
.hubwx .wxi{font-size:1.05rem;line-height:1}
.wxback{position:fixed;inset:0;z-index:70;background:rgba(0,0,0,.35);opacity:0;transition:opacity .25s}.wxback.show{opacity:1}.wxback[hidden],.wxpop[hidden]{display:none}
.wxpop{position:fixed;z-index:71;display:flex;flex-direction:column;min-height:0;border:1px solid rgba(var(--acc),.4);border-radius:20px;background:var(--card);box-shadow:0 30px 70px -20px rgba(0,0,0,.7);opacity:0;transform:translateY(-8px) scale(.98);transform-origin:top left;transition:opacity .22s,transform .3s cubic-bezier(.2,.9,.3,1.15)}
.wxpop.show{opacity:1;transform:none}
.wxhd{display:flex;align-items:center;gap:10px;padding:14px 16px 10px;border-bottom:1px solid var(--line)}
.wxhd b{font-size:1rem}.wxhd .muted{font-size:.76rem}
.wxx{margin-left:auto;width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:none;color:var(--mut);cursor:pointer;font-size:.9rem}
.wxbody{padding:14px 16px 18px;overflow-y:auto;display:grid;gap:12px;align-content:start}
.wxh{display:grid;gap:2px}.wxh a{color:inherit;text-decoration:none}.wxh b{font-size:1.1rem}.wxh small{color:var(--mut);font-size:.8rem;text-transform:capitalize}
.wxh small{text-transform:none}
.wxd{display:inline-block;width:max-content;font-weight:800;font-size:.78rem;color:var(--accent);padding:2px 10px;border-radius:99px;border:1px solid rgba(var(--acc),.45);background:rgba(var(--acc),.1)}
.wxm{display:grid;grid-template-columns:auto 1fr;gap:2px 14px;align-items:center;padding:12px 14px;border-radius:14px;border:1px solid var(--line);border-left:4px solid var(--line);background:rgba(255,255,255,.03)}
.wxm.ok{border-left-color:#3fb97a}.wxm.warn{border-left-color:#e0a03a}.wxm.bad{border-left-color:#e5484d}
.wxbig{grid-row:1/3;font-size:2.4rem;line-height:1}.wxm b{font-size:1.35rem}.wxm small{display:block;color:var(--mut);font-size:.82rem}
.wxm p{grid-column:1/-1;margin:6px 0 0;font-size:.86rem;font-weight:700}.wxm.ok p{color:#3fb97a}.wxm.warn p{color:#e0a03a}.wxm.bad p{color:#e5484d}
.wxgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.wxt{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.025);min-width:0}
.wxt>i{flex:none;font-style:normal;font-size:1.25rem}.wxt>span{display:grid;gap:0;min-width:0}
.wxt small{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}.wxt b{font-size:.98rem}.wxt em{font-style:normal;font-size:.72rem;color:var(--mut)}
.wxsun h4,.wxnext{margin:2px 0 8px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mut)}
.wxsun .wxt:nth-child(3),.wxsun .wxt:nth-child(4){border-color:rgba(var(--acc),.4);background:rgba(var(--acc),.08)}
.wxtips{margin:0;padding-left:18px;font-size:.82rem;color:var(--mut)}
.wxnext{margin:6px 0 -4px}
.wxmore{border:1px solid var(--line);border-radius:14px;padding:0 12px;background:rgba(255,255,255,.02)}
.wxmore>summary{display:flex;align-items:center;gap:10px;padding:11px 0;cursor:pointer;list-style:none;min-width:0}.wxmore>summary::-webkit-details-marker{display:none}
.wxmore>summary b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem}
.wxs{flex:none;font-size:.82rem;color:var(--mut)}
.wxmore[open]{padding-bottom:12px;display:grid;gap:10px}.wxmore[open]>summary{padding-bottom:2px}
html[data-theme=light] .hubwx{background:#fff}
html[data-theme=light] .wxm,html[data-theme=light] .wxt,html[data-theme=light] .wxmore{background:#f7f8fa}
html[data-theme=light] .wxback{background:rgba(20,22,30,.25)}
@media(max-width:767px){
 .wxpop{left:0!important;right:0;top:auto!important;bottom:0;width:auto!important;max-height:84vh!important;border-radius:22px 22px 0 0;border-bottom:0;transform:translateY(40px);transform-origin:bottom center;padding-bottom:env(safe-area-inset-bottom)}
 .wxpop.show{transform:none}
 .hubwx .wxl{display:none}
 .hubwx{padding:7px 9px}
 .hubtabs[aria-label="Accueil"]{gap:3px}
 .hubtabs[aria-label="Accueil"] a{padding:7px 7px;font-size:.78rem}
 .hubtabs[aria-label="Accueil"] a[href="/alertes"]{padding:7px 9px}
 main .subtabs.hubtabs[aria-label="Accueil"] a[href="/aujourdhui"] .tabbadge{position:absolute;top:-4px;right:-4px;margin:0;box-shadow:0 0 0 2px var(--bg,#0f1115)}
}

/* ===== Étape 81 : synchro Google Agenda du Planning = un tout petit bouton (l'ancienne barre héritait du style « jauge » .gbar et restait à moitié visible) ===== */
.gsyncf{margin:0 0 0 auto;display:inline-flex}
.gsync{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:99px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--mut);font:inherit;font-size:.74rem;font-weight:600;line-height:1;cursor:pointer;text-decoration:none;white-space:nowrap;transition:border-color .15s,color .15s,background .15s}
.gsync i{font-style:normal;font-size:.9rem;line-height:1}
.gsync:hover{color:var(--ink);border-color:rgba(var(--acc),.6)}
.gsync.ok i{color:#3fb97a}.gsync.ok{border-color:rgba(63,185,122,.35)}
.gsync.warn{border-color:rgba(224,160,58,.5);color:#e0a03a}
.gsync.off{border-style:dashed}
.gsync:active i{animation:gsyncSpin .6s linear}
@keyframes gsyncSpin{to{transform:rotate(360deg)}}
.planhead .gsyncf,.agbar>.gsync{margin-left:auto}
@media(max-width:767px){.gsync{height:24px;padding:0 8px}.gsync span{display:none}.gsync i{font-size:1rem}}
html[data-theme=light] .gsync{background:#fff}

/* ===== Étape 81 (fin) : Partir en mission, mobile plus compact, fiche client épurée, Objectifs ===== */
.depart{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:12px 16px;border-radius:16px;text-decoration:none;color:#1b1608;background:linear-gradient(135deg,#f3d889,#c59b27);box-shadow:0 10px 26px -10px rgba(197,155,39,.6);animation:departPulse 2.4s ease-in-out infinite}
.depart[hidden]{display:none}
.depart>i{font-style:normal;font-size:1.5rem}
.depart>span{display:grid;flex:1;min-width:0}.depart b{font-size:1.05rem}.depart small{font-size:.8rem;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.depart>em{font-style:normal;font-size:1.6rem}
@keyframes departPulse{50%{box-shadow:0 10px 34px -6px rgba(197,155,39,.9)}}
@media(max-width:767px){
 html.mrail .main{margin-left:44px}
 html.mrail .side{width:44px;padding:6px 3px}
 html.mrail .side nav a{height:36px;min-height:36px;border-radius:10px}
 html.mrail .side nav a svg{width:18px;height:18px}
 html.mrail .side .brand .logomark{width:24px;height:24px}
 html.mrail .tabbar{left:0}
 html.mrail .toplogo{display:none}
 .top .vbtn,.top .gear{min-width:30px;width:auto;height:30px;border-radius:10px;padding:0 6px}
 .top .gear{width:30px}
 .top .vbtn svg,.top .gear svg{width:16px;height:16px}
 .top .actions{gap:5px}
 .top .gear[href="/parametres"]{display:none}
}
/* Objectifs / Tâches : champs du détail aux couleurs du thème (ni gris foncé en clair, ni blanc en sombre) */
.taskfold input[type=range]{accent-color:#c59b27;background:transparent}
.taskfold .goalslide input[data-f=category]{background:transparent}
html[data-theme=light] .taskfold input,html[data-theme=light] .taskfold select,html[data-theme=light] .taskfold textarea{background:#fff;color:#16181d}
/* Fiche client : bandeau compact, coordonnées d'abord */
.cf-line.empty{display:flex!important;flex-direction:row!important;justify-content:flex-start!important;text-align:left!important;padding:6px 12px!important;gap:10px}
.cf-line.empty::before{display:none!important}
.cf-hero{padding:12px 16px;gap:8px 16px;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.cf-avatar{width:46px;height:46px;border-radius:14px;font-size:1.1rem}
.cf-name{font-size:1.25rem}.cf-badges{margin:4px 0 2px}.cf-sub{font-size:.76rem}
.cf-hero>.cf-id{grid-column:1;grid-row:1}
.cf-hero>.cf-quick{grid-column:2;grid-row:1;justify-content:flex-end}
.cf-hero>.cf-contact{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px}
.cf-hero>.cf-kpis{grid-column:1/-1;grid-row:3}
.cf-line{min-height:44px;padding:5px 10px;border-radius:12px;gap:9px}
.cf-line>i{width:28px;height:28px;border-radius:9px;font-size:.9rem}
.cf-line b{font-size:.92rem}.cf-line.tel b{font-size:.98rem}
.cf-quick .btn{min-height:36px;padding:0 12px;font-size:.84rem}
.cf-hero .cf-kpis{gap:6px;margin-top:0}
.cf-hero .cf-kpi{padding:5px 11px;grid-template-columns:auto 1fr;align-items:baseline;gap:0 10px}
.cf-hero .cf-kpi span{grid-column:1/-1;font-size:.62rem}
.cf-hero .cf-kpi b{font-size:1.05rem}.cf-hero .cf-kpi small{font-size:.7rem;align-self:center}
.cf-nobg{position:absolute;top:8px;right:10px;z-index:2;width:26px;height:26px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--mut);cursor:pointer;font-size:.8rem;line-height:1}
.cf-nobg:hover{color:var(--accent2);border-color:rgba(var(--acc),.6)}
.cf-hero.nobg,.cf-nobgc .card.inlinebox,.card.inlinebox.nobg{background:transparent!important;border-color:transparent!important;box-shadow:none!important;backdrop-filter:none}
@media(max-width:860px){.cf-hero{grid-template-columns:1fr}.cf-hero>.cf-quick,.cf-hero>.cf-contact,.cf-hero>.cf-kpis{grid-column:1;grid-row:auto}.cf-hero>.cf-quick{justify-content:flex-start}.cf-hero .cf-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Vue d'ensemble : coordonnées en premier, prochain événement et notes en version discrète */
[data-reorder=client]>.cf-next,[data-reorder=client]>.cf-postits{padding:10px 14px}
[data-reorder=client]>.cf-next h2,[data-reorder=client]>.cf-postits h2{font-size:.95rem;margin:0 0 6px}
.cf-next .cf-count b{font-size:1.4rem}
.card.inlinebox .inl-view{display:grid;grid-template-columns:auto 1fr;gap:3px 14px;margin:0}
.card.inlinebox .inl-view dt{margin:0}.card.inlinebox .inl-view dd{margin:0}
.cf-nobg{display:inline-grid;place-items:center;padding:0}
.cf-hero>.cf-nobg{top:6px;right:8px}
.cf-hero{padding-top:12px}
.card.inlinebox:not(.editing) .inl-view{grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);gap:4px 18px;font-size:.88rem}
.card.inlinebox{padding:12px 16px}.card.inlinebox>h2{margin:0 0 8px;font-size:1rem}
@media(max-width:860px){.card.inlinebox:not(.editing) .inl-view{grid-template-columns:auto minmax(0,1fr)}}
[data-id=gridcoord]{grid-template-columns:minmax(0,1fr)}

/* Accueil : Aujourd'hui et Alertes au même style que le bouton Météo ; bouton discret « Carte » dans la fenêtre météo */
.hubtabs[aria-label="Accueil"] a[href="/aujourdhui"]:not(.on),.hubtabs[aria-label="Accueil"] a[href="/alertes"]:not(.on){border-color:rgba(var(--acc),.5);background:rgba(var(--acc),.1);color:var(--ink)}
.hubtabs[aria-label="Accueil"] a[href="/aujourdhui"]:not(.on):hover,.hubtabs[aria-label="Accueil"] a[href="/alertes"]:not(.on):hover{background:rgba(var(--acc),.22);border-color:var(--accent)}
html[data-theme=light] .hubtabs[aria-label="Accueil"] a[href="/aujourdhui"]:not(.on),html[data-theme=light] .hubtabs[aria-label="Accueil"] a[href="/alertes"]:not(.on){background:#fff}
.wxcard{text-decoration:none;display:inline-flex;background:none;border:1px solid var(--line);color:var(--mut);border-radius:99px;padding:2px 10px;font:inherit;font-size:.74rem;cursor:pointer}
.wxcard:hover,.wxcard.on{color:var(--accent2);border-color:rgba(var(--acc),.55)}
.wxhd .muted+.wxcard{margin-left:auto}

/* Accueil PC : plus léger, tuiles régulières, rien ne s'étire quand on modifie la disposition */
@media(min-width:1180px){
 .reorder.dash-grid[data-reorder=home2]{align-items:start;grid-auto-rows:auto;gap:12px}
 .reorder.dash-grid[data-reorder=home2]>*{height:auto!important;max-height:none}
 .finmain{min-height:0!important;padding:14px 20px!important}
 .finmain .big,.finmain>b{font-size:2rem!important}
 .mt.stat-sec{min-height:0!important;padding:10px 14px!important;background:transparent!important;border:1px solid rgba(255,255,255,.07)!important;box-shadow:none!important}
 .mt.stat-sec:hover{border-color:rgba(var(--acc),.45)!important}
 .dash-side{align-self:start}
 .dash-side .meteocard{max-height:calc(100vh - 150px);overflow:auto}
}
html[data-theme=light] .mt.stat-sec{border-color:#e3e6ea!important}
.wxday{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--line)}
.wxday button{height:30px;min-width:30px;padding:0 10px;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:.8rem;cursor:pointer}
.wxday button:hover{border-color:rgba(var(--acc),.6);color:var(--accent2)}
.wxday input{height:30px;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:.82rem;padding:0 8px;min-width:0}
.wxday #wxlieu{flex:1 1 110px}
.hubmap{display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border-radius:99px;border:1px solid var(--line);color:var(--mut);text-decoration:none}
.hubmap:hover{color:var(--accent2);border-color:rgba(var(--acc),.55)}
@media(max-width:767px){.hubmap,.hubtabs a.hubmap{display:none!important}}
.basectl{display:flex;overflow:hidden;border-radius:10px!important;border:1px solid rgba(0,0,0,.25)!important;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.basectl button{border:0;background:#fff;color:#444;font:inherit;font-size:.74rem;font-weight:600;padding:6px 10px;cursor:pointer}
.basectl button+button{border-left:1px solid #ddd}
.basectl button[aria-pressed=true]{background:#c59b27;color:#1b1608}
.subtabs a.hubmap,.hubtabs a.hubmap{padding:0!important;width:34px;min-width:34px;height:34px;gap:0}
.hubmap svg{width:17px;height:17px;flex:none;display:block}
/* Prochain tournage dans la colonne de droite (PC) */
.pnext{display:grid;gap:8px;padding:14px 16px!important;border:1px solid rgba(var(--acc),.5)!important;background:linear-gradient(145deg,rgba(var(--acc),.16),rgba(var(--acc),.03) 70%),var(--card)!important;border-radius:18px}
.pnext.imminent{border-color:var(--accent)!important;animation:nsGlow 2.4s ease-in-out infinite}
.pn-k{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent2);font-weight:700}
.pn-main{display:flex;align-items:center;gap:12px;min-width:0}
.pn-cd{flex:none;font-size:1.25rem;font-weight:800;color:var(--accent);padding:6px 10px;border-radius:12px;background:rgba(0,0,0,.22);border:1px solid rgba(var(--acc),.4);white-space:nowrap}
.pn-t{display:grid;min-width:0}.pn-t strong{font-size:.98rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pn-t small{color:var(--mut);font-size:.78rem}
.pn-place{font-size:.82rem;color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pn-w{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.04);font-size:.84rem;min-width:0}
.pn-w .mt-i{font-size:1.5rem}.pn-w b{display:block;font-size:.95rem}.pn-w small{color:var(--mut)}.pn-wc{margin-left:auto;display:grid;font-size:.76rem;color:var(--mut);text-align:right}
.pn-btns{display:flex;gap:8px}.pn-btns a{flex:1;text-align:center;padding:7px 8px;border-radius:10px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:.82rem}
.pn-btns a:hover{border-color:rgba(var(--acc),.6);color:var(--accent2)}
html[data-theme=light] .pnext{background:#fff!important}html[data-theme=light] .pn-w{background:#f4f5f7}html[data-theme=light] .pn-cd{background:#f4f5f7}
/* Accueil PC : tuiles toutes de la même hauteur ; carte Prochain tournage plus haute avec le détail météo */
@media(min-width:1180px){
 .reorder.dash-grid[data-reorder=home2]>.mt.stat-sec{height:104px!important;overflow:hidden;align-self:stretch}
 .reorder.dash-grid[data-reorder=home2]>.finmain{height:132px!important}
}
.pn-w.big{display:grid;gap:8px;padding:10px 12px}
.pn-top{display:flex;align-items:center;gap:10px}.pn-top .mt-i{font-size:1.9rem}.pn-top b{font-size:1.1rem}
.pn-adv{margin:0;font-size:.8rem;color:var(--mut)}
.pn-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.pn-t2{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:10px;background:rgba(255,255,255,.04);min-width:0}
.pn-t2>i{font-style:normal;font-size:1rem}.pn-t2 span{display:grid;min-width:0}.pn-t2 small{font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;color:var(--mut)}.pn-t2 b{font-size:.84rem;white-space:nowrap}
.pn-tips{margin:0;padding-left:16px;font-size:.76rem;color:var(--mut)}
html[data-theme=light] .pn-t2{background:#eef0f3}
/* Projets (tableau) sur PC : tient dans la page, chaque colonne défile à l'intérieur */
@media(min-width:861px){body:has(#kanban) main{padding-bottom:0}.kanban.kfit{overflow-y:hidden}.kanban.kfit .kcol{height:100%}}
#map.neutralmap .leaflet-tile-pane{filter:grayscale(1) brightness(1.12) contrast(.82)}
#map.neutralmap{background:#f2f2f2}
/* liens d'ancre (ex. Accueil → Finances #smic) : l'encart ciblé s'affiche entier sous l'en-tête fixe */
html{scroll-padding-top:150px}
[id=smic],.card[id],section[id]{scroll-margin-top:150px}
.wxday .wxnav{flex:1 0 100%;display:flex;align-items:center;justify-content:space-between;gap:8px}
.wxday .wxnav input{flex:0 0 auto;width:132px;text-align:center;padding:0 4px;font-size:.78rem}
.wxday .wxnav button{flex:none;width:34px;font-size:1.1rem;line-height:1}
.hovpop{z-index:60}.hovall{margin-left:auto;font-size:.76rem;color:var(--accent2);text-decoration:none}
.hovlist{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.hovlist li{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.04)}
.hovlist a{display:grid;color:inherit;text-decoration:none;min-width:0}.hovlist b{font-size:.86rem}.hovlist small{color:var(--mut);font-size:.76rem}
.hovpop .alertlist,.hovpop ul{max-height:none}
html[data-theme=light] .hovlist li{background:#f4f5f7}
@media(min-width:861px){
 .kanban.kfit{height:var(--kh,auto)!important;max-height:none!important;position:relative!important;left:auto!important;top:auto!important;width:100%!important;overflow-y:hidden!important}
}

/* ===== Mobile : Planning et Projets compacts, tout tient sur l'écran ===== */
@media(max-width:767px){
 /* Planning */
 .planhead{gap:4px 8px;margin-bottom:4px}
 .planhead .legend{display:none}
 .planhead .agbar{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;width:100%;margin:0;flex-direction:row}
 .planhead .agviews{flex:1}.planhead .agviews a{padding:3px 6px;font-size:.78rem}
 .planhead .agfilters{display:none}
 .planhead .gsyncf{margin-left:0}
 .planfit{grid-template-columns:minmax(0,1fr)!important;display:grid}
 .planfit .planside{display:none}
 .plancal{padding:6px 6px!important;min-height:0}
 .plancal .calnav{margin-bottom:4px}
 .planfit-m .plancal .cal{flex:1;min-height:0;grid-template-rows:auto repeat(var(--wk,6),minmax(0,1fr));gap:2px}
 .planfit-m .plancal .calday{min-height:0!important;overflow:hidden;padding:2px 3px}
 .planfit-m .plancal .calday .dn{font-size:.68rem}
 .planfit-m .plancal .calday .ev{font-size:.58rem;padding:0 3px;line-height:1.15}
 /* Projets */
 body:has(#kanban) .potbar,body:has(#kanban) .projins,body:has(#projlist) .potbar,body:has(#kanban) .potbar,body:has(#projlist) .potbar,body:has(#projlist) .projins{display:none!important}
 body:has(#kanban) .potbar,body:has(#projlist) .potbar{display:none!important}
 .projbar>a.btn.small[title^="Les projets perdus"]{display:none}
 .planfit>.plancal{height:100%}
 .calnav .datepick select{max-width:7.6em;font-size:.88rem}
 .projbar{display:grid!important;grid-template-columns:1fr 1fr 1fr;gap:4px!important;margin:0 0 6px!important}
 .projbar input[type=search]{grid-column:1/-1;height:34px;padding:0 10px;font-size:.88rem}
 .projbar select{height:32px;font-size:.78rem;padding:0 6px;min-width:0}
 .projbar .btn.small{height:30px;font-size:.74rem;padding:0 8px}
 .projbar .viewsw{grid-column:1/-1;margin:0}.projbar .viewsw a{padding:4px 10px;font-size:.8rem}
}
@media(max-width:767px){
 .plancal .calnav{display:flex;flex-wrap:nowrap;gap:3px;align-items:center}
 .plancal .calnav .btn.small{min-width:30px;height:30px;padding:0 6px;flex:none}
 .plancal .calnav form.datepick{flex:1 1 0;min-width:0;display:flex;gap:2px;justify-content:center}
 .plancal .calnav .datepick select{flex:1 1 0;min-width:0;max-width:none;font-size:.84rem;padding:2px 2px}
 .plancal .calnav .datepick input{width:3.6em;flex:none;font-size:.84rem;padding:2px 2px}
 .plancal .calnav .evjump #evprev,.plancal .calnav .planfull{display:none}
}
@media(max-width:767px){
 .plancal .calnav .evjump{display:inline-flex!important;flex:none;gap:3px}
 .plancal .calnav .evjump .lbl,.plancal .calnav>.btn .lbl{display:none!important}
 .plancal .calnav form.datepick{min-width:96px}
}
@media(max-width:767px){
 .plancal .calnav .btn.small{min-width:28px;width:28px;height:28px;padding:0}
 .plancal .calnav{gap:2px}
 .plancal .calnav form.datepick{flex:1 1 130px;min-width:120px}
 .plancal .calnav .datepick select{flex:1 1 70px;min-width:70px}
 .plancal .calnav .datepick input{width:3.4em;min-width:3.4em}
}
@media(max-width:767px){.plancal .calnav .datepick input{width:3.9em;min-width:3.9em;padding:2px 0;text-align:center}.plancal .calnav .datepick select{min-width:60px;flex:1 1 60px}}

/* Thème clair (PC) : contrastes renforcés — fond gris doux, encarts blancs bien cernés, textes plus foncés */
html[data-theme=light]{--mut:#4b5563}
html[data-theme=light] body,html[data-theme=light] .main{background:#e9ecf1}
html[data-theme=light] .card,html[data-theme=light] .kpi,html[data-theme=light] .kcol,html[data-theme=light] .cf-hero,html[data-theme=light] .cf-kpi,html[data-theme=light] .cf-line{background:#fff!important;border:1px solid #c9ced6!important;box-shadow:0 1px 2px rgba(20,24,32,.06),0 8px 22px -16px rgba(20,24,32,.25)}
html[data-theme=light] .mt.stat-sec{background:#fff!important;border:1px solid #c9ced6!important;box-shadow:0 1px 2px rgba(20,24,32,.05)}
html[data-theme=light] .mt.stat-sec:hover,html[data-theme=light] .card:hover{border-color:#b8902a!important}
html[data-theme=light] .finmain{background:#fff!important;border:1px solid #b8902a!important}
html[data-theme=light] .finmain[data-id=aencaisser]{border-color:#c9ced6!important}
html[data-theme=light] .hubtabs a,html[data-theme=light] .subtabs a{background:#fff;border-color:#c9ced6;color:#1b1f27}
html[data-theme=light] .hubtabs a.on,html[data-theme=light] .subtabs a.on{background:#b8902a;color:#fff;border-color:#b8902a}
html[data-theme=light] .hubwx,html[data-theme=light] .hubtabs[aria-label="Accueil"] a[href="/aujourdhui"]:not(.on),html[data-theme=light] .hubtabs[aria-label="Accueil"] a[href="/alertes"]:not(.on){background:#fff;border-color:#b8902a;color:#1b1f27}
html[data-theme=light] .mt>span,html[data-theme=light] .kpi>span{color:#4b5563}
html[data-theme=light] .wxpop,html[data-theme=light] .hovpop{background:#fff;border-color:#b8902a;box-shadow:0 24px 60px -20px rgba(20,24,32,.45)}
html[data-theme=light] .dtask,html[data-theme=light] .row{border-color:#d5d9e0}
/* Mode essentiel (mobile) */
.mfold{margin:10px 0 0;border:1px dashed var(--line);border-radius:14px;padding:0 12px;background:transparent}
.mfold>summary{list-style:none;cursor:pointer;padding:12px 0;text-align:center;color:var(--accent2);font-weight:600;font-size:.9rem}
.mfold>summary::-webkit-details-marker{display:none}
.mfold>summary b{margin-left:6px;padding:0 8px;border-radius:99px;background:rgba(var(--acc),.18);font-size:.76rem}
.mfold[open]>summary{border-bottom:1px solid var(--line);margin-bottom:10px}
.mfold-in{display:grid;gap:12px}
.mfold-off{display:block;margin:12px auto;background:none;border:0;color:var(--mut);font:inherit;font-size:.76rem;text-decoration:underline;cursor:pointer}

/* Prospection (PC) : recherche en une ligne à droite des onglets, chiffres clés, séquence de relance en bandeau discret */
.hubtabs .findbar{margin-left:auto;display:flex;align-items:center;gap:6px;padding:4px 6px 4px 10px;border:1px solid rgba(var(--acc),.45);border-radius:99px;background:rgba(var(--acc),.07);flex:0 1 auto;min-width:0}
.findbar .fbl{font-size:.9rem}
.findbar select,.findbar input:not([type=checkbox]){height:30px;border-radius:99px;border:1px solid var(--line);background:rgba(0,0,0,.18);color:var(--ink);font:inherit;font-size:.82rem;padding:0 12px;min-width:0;margin:0}
.findbar select{max-width:170px}.findbar input[name=where]{width:150px}.findbar input[name=radius]{width:58px;padding:0 6px;text-align:center}
.findbar .fbu{font-style:normal;font-size:.74rem;color:var(--mut);margin-left:-2px}
.findbar .fbc{display:flex;align-items:center;gap:5px;font-size:.78rem;color:var(--mut);white-space:nowrap;cursor:pointer}.findbar .fbc input{width:auto;height:auto}
.findbar .fbgo{height:30px;border-radius:99px;white-space:nowrap}
.hubtabs .findbar+*{margin-left:0}
.prospkpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:0 0 12px}
.prospkpi>div{display:grid;gap:2px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01))}
.prospkpi span{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mut)}
.prospkpi b{font-size:1.45rem;line-height:1.1}.prospkpi .ok b{color:#3fb97a}
#sequence{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:10px 16px!important;border-radius:14px}
#sequence>h2{margin:0;font-size:.95rem;flex:1 1 auto}
#sequence>p.muted{display:none}
#sequence>.btnrow{margin:0!important;flex:0 0 auto}
#sequence>ul{flex:1 1 100%;margin:0!important;font-size:.84rem}
#sequence>details{flex:1 1 100%;font-size:.84rem;color:var(--mut)}
#sequence>details>summary{cursor:pointer;color:var(--accent2)}
html[data-theme=light] .findbar select,html[data-theme=light] .findbar input:not([type=checkbox]){background:#fff}
html[data-theme=light] .prospkpi>div{background:#fff}
@media(max-width:767px){.hubtabs .findbar{display:none}}
.findbar .fbc{flex-direction:row!important;text-transform:none!important;letter-spacing:0!important;margin:0!important;gap:5px}
.findbar .fbc input{margin:0!important}
.tourbar .tstart{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;flex:1;text-align:left;text-transform:none;letter-spacing:0;font-size:.82rem}
.tourbar .tstart input{flex:1}
.findbar select{max-width:190px}.findbar input[name=where]{width:170px}
/* listes déroulantes : options lisibles (fond et texte du thème), sélection bien visible */
select option,select optgroup{background:#181a1f;color:#f3f4f6}
select option:checked,select option:hover{background:#c59b27!important;color:#1b1608!important}
html[data-theme=light] select option,html[data-theme=light] select optgroup{background:#fff;color:#16181d}
html[data-theme=light] select option:checked,html[data-theme=light] select option:hover{background:#b8902a!important;color:#fff!important}
.findbar select{color-scheme:dark}html[data-theme=light] .findbar select{color-scheme:light}

/* ===== Mobile : Ventes, Planning (semaine / mois) et Tâches sur une seule page ===== */
@media(max-width:767px){
 /* Planning mois : le calendrier remplit l'écran jusqu'en bas, sans dépasser */
 .planfit-m .planfit{display:flex!important;flex-direction:column;height:var(--pfh,auto)!important;min-height:0}
 .planfit-m .planfit>.plancal{flex:1;min-height:0;height:auto}
 /* barre du mois : flèches sur les côtés, mois et année au centre ; « aujourd'hui » et « prochain » en dessous, discrets */
 .plancal .calnav{display:grid!important;grid-template-columns:34px minmax(0,1fr) 34px;grid-auto-flow:row;gap:4px 6px!important;align-items:center}
 .plancal .calnav>a.btn.small:first-child{grid-column:1;grid-row:1}
 .plancal .calnav form.datepick{grid-column:2;grid-row:1;justify-content:center;min-width:0}
 .plancal .calnav>a.btn.small[href*="mois="]:not(:first-child){grid-column:3;grid-row:1}
 .plancal .calnav>a.btn.small[title="Aujourd'hui"],.plancal .calnav .evjump{grid-row:2;grid-column:1/-1;justify-self:center;display:inline-flex!important;width:auto}
 .plancal .calnav>a.btn.small[title="Aujourd'hui"]{grid-column:1/2;justify-self:start}
 .plancal .calnav .evjump{grid-column:2/4;justify-self:end}
 .plancal .calnav .btn.small{width:34px;height:30px}
 .plancal .calnav .datepick select{font-size:.95rem;font-weight:600;flex:1 1 auto;min-width:90px}
 .plancal .calnav .datepick input{font-size:.95rem;font-weight:600;width:4em;min-width:4em}
 /* Planning semaine : 7 jours en lignes compactes qui tiennent dans l'écran */
 .agfilters{display:none}
 .agweek{gap:4px!important}
 .agday{flex-direction:row!important;flex-wrap:wrap;align-items:center;gap:3px 6px!important;padding:5px 8px!important;border-radius:10px}
 .agday header{flex:0 0 60px;flex-direction:column;align-items:flex-start;gap:0;font-size:.82rem;line-height:1.15}
 .agday header span{font-size:.7rem}
 .agday .add{order:9;margin-left:auto;width:22px;height:22px}
 .agday .ev{flex:1 1 auto;min-width:0;max-width:calc(100% - 100px);white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;font-size:.7rem!important;padding:2px 6px!important}
 .agday .ev small{display:none}
 .calnav.agnav h2{font-size:.9rem!important;line-height:1.2}
 .agbar{gap:6px!important;margin-bottom:6px}
 /* Ventes : Devis / Contrats / Factures sur toute la largeur, réglages condensés, chiffres en 2×2 */
 .hubtabs[aria-label="Ventes"]{display:flex;flex-wrap:nowrap;gap:4px;overflow:visible}
 .hubtabs[aria-label="Ventes"] a{flex:1 1 0;min-width:0;justify-content:center;padding:7px 4px;font-size:.78rem;gap:4px}
 .hubtabs[aria-label="Ventes"] a .ic{width:15px;height:15px}
 .hubtabs[aria-label="Ventes"] a[href="/relances"]{flex:0 0 auto;padding:7px 9px}
 .hubtabs[aria-label="Ventes"] a[href="/relances"] span:not(.ic):not(.tabbadge){display:none}
 body:has(.doclist) .vuetabs{display:flex;gap:4px;margin:0 0 6px}
 body:has(.doclist) .vuetabs a{flex:1;text-align:center;padding:5px 6px;font-size:.78rem}
 body:has(.doclist) .chips.inbar{display:flex;gap:4px;overflow-x:auto;flex-wrap:nowrap;margin:0 0 6px;padding-bottom:2px;scrollbar-width:none}
 body:has(.doclist) .chips.inbar .btn{flex:none;height:28px;padding:0 10px;font-size:.76rem}
 body:has(.doclist) form.filters{display:grid!important;grid-template-columns:1fr 1fr;gap:4px!important;padding:6px!important;margin:0 0 6px}
 body:has(.doclist) form.filters input[type=search]{grid-column:1/-1;height:32px;font-size:.85rem}
 body:has(.doclist) form.filters select{height:30px;font-size:.76rem;padding:0 4px;min-width:0}
 body:has(.doclist) form.filters button{display:none}
 body:has(.doclist) .rangerform{display:none}
 body:has(.doclist) .tasksins{margin:0 0 6px}
 body:has(.doclist) .tasksins .itile,body:has(#tasklist) .tasksins .itile{min-height:0;padding:7px 10px}
 body:has(.doclist) .tasksins .iv,body:has(#tasklist) .tasksins .iv{font-size:1.05rem;margin-top:2px}
 body:has(.doclist) .tasksins .il,body:has(#tasklist) .tasksins .il{font-size:.58rem}
 body:has(.doclist) .tasksins .is,body:has(#tasklist) .tasksins .is{font-size:.64rem}
 body:has(.doclist) .tasksins .ispw,body:has(#tasklist) .tasksins .ispw{display:none}
}
@media(max-width:767px){
 body:has(.doclist) .insights,body:has(#tasklist) .insights{display:grid!important;grid-template-columns:1fr 1fr;gap:6px;margin:0;padding:0;overflow:visible}
 body:has(.doclist) .insights .ichart,body:has(#tasklist) .insights .ichart,body:has(.doclist) .insights .itile:nth-child(n+5),body:has(#tasklist) .insights .itile:nth-child(n+5){display:none}
 body:has(.doclist) .listmeta{margin:2px 0 6px;font-size:.8rem}
 /* Tâches & objectifs : tout en largeur, lignes fines, listes qui défilent dans leur cadre */
 body:has(#tasklist) .taskadd{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 0 6px}
 body:has(#tasklist) .taskadd input[name=title]{grid-column:1/-1;height:34px;font-size:.88rem}
 body:has(#tasklist) .taskadd input[type=date],body:has(#tasklist) .taskadd select{height:30px;font-size:.78rem;min-width:0}
 body:has(#tasklist) .taskadd .dchips{display:none}
 body:has(#tasklist) .taskadd .starchk{height:30px;font-size:.78rem;justify-content:center}
 body:has(#tasklist) .taskadd .btn{height:30px;min-height:0;font-size:.8rem}
 body:has(#tasklist) h2.secth,body:has(#tasklist) .goalsbar h2,body:has(#tasklist) .goalsbar .secth{font-size:.85rem;margin:6px 0 4px}
 #tasklist,.goalslist{max-height:36vh;overflow-y:auto;scrollbar-width:thin;display:grid;gap:4px}
 .goalslist{max-height:26vh}
 #tasklist .task,.goalslist .ngoal{padding:4px 8px!important;border-radius:10px}
 #tasklist .goalhd,.goalslist .goalhd{flex-wrap:nowrap!important;gap:5px!important;align-items:center}
 #tasklist .goalhd .taskbtn,.goalslist .goalhd .taskbtn{padding:0 2px;font-size:1rem}
 #tasklist .goaltitle,.goalslist .goaltitle{flex:1 1 0;min-width:0;font-size:.82rem!important;padding:2px 4px!important;height:26px;text-overflow:ellipsis}
 #tasklist .ttag,#tasklist .stepcount,#tasklist .goalhd .goaldue,#tasklist .goalhd .pgb,.goalslist .gpill,.goalslist .goaldue,.goalslist .bar.neon,.goalslist .gmeta .stepcount{display:none}
 #tasklist .pgbtn{padding:0 4px;min-width:0}#tasklist .goalpct,.goalslist .goalpct{font-size:.72rem;min-width:0}
 #tasklist .moreb,.goalslist .moreb{padding:0 4px;font-size:.9rem}
 .goalslist .gmeta{display:inline-flex;margin:0;padding:0}
 .goalslist .ngoal .goalhd{flex:1 1 auto}
 .goalslist .gcath{display:none}
 .gcats{display:flex;overflow-x:auto;gap:4px;flex-wrap:nowrap;scrollbar-width:none;margin:0 0 4px}.gchip{flex:none;font-size:.72rem;padding:3px 9px}
 .goalsbar{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
 .goalsbar .goaladd{display:grid;grid-template-columns:1fr auto;gap:4px;width:100%}
 .goalsbar .goaladd input[type=date],.goalsbar .goaladd .goalcat-in{display:none}
 .goalsbar .goaladd input[name=title]{height:30px;font-size:.82rem}.goalsbar .goaladd .btn{height:30px;min-height:0}
}
/* étape 81 — mobile : une seule page (listes qui défilent dans leur cadre) */
@media(max-width:767px){
 .hubtabs[aria-label="Ventes"] a .ic{display:none!important}
 .hubtabs[aria-label="Ventes"] a{position:static;font-size:.76rem;padding:7px 3px;white-space:nowrap;overflow:hidden}
 .hubtabs[aria-label="Ventes"] .tabbadge{position:static;margin-left:2px;transform:scale(.85)}
 body:has(.doclist) main,body:has(#tasklist) main{display:flex;flex-direction:column;height:calc(100dvh - 128px);overflow:hidden;padding-top:6px;padding-bottom:4px;gap:6px}
 body:has(.doclist) main>.hubtabs,body:has(#tasklist) main>.hubtabs{flex:0 0 auto;margin:0!important}
 body:has(.doclist) main>.reorder,body:has(#tasklist) main>.reorder{flex:1 1 0;min-height:0;height:auto!important;display:flex!important;flex-direction:column;gap:6px;overflow:hidden}
 body:has(.doclist) main>.reorder>*,body:has(#tasklist) main>.reorder>*{flex:0 0 auto;margin:0!important;min-width:0}
 body:has(.doclist),body:has(#tasklist){overflow:hidden}
 body:has(.doclist) main>.reorder>.tablewrap{flex:1 1 0;min-height:0;overflow-y:auto}
 body:has(#tasklist) main>.reorder>#tasklist{flex:2 1 0;min-height:0;max-height:none;overflow-y:auto}
 body:has(#tasklist) main>.reorder>.goalsec,body:has(#tasklist) main>.reorder>section:last-of-type{flex:1 1 0;min-height:0;overflow-y:auto}
 #tasklist{max-height:none}
 body:has(.doclist) form[role=search],body:has(.doclist) form.filters input[type=search]{margin:0}
 body:has(.doclist) .listmeta{display:none}
 /* semaine : 7 lignes qui tiennent dans l'écran */
 .agweek{display:grid!important;grid-template-rows:repeat(7,minmax(0,1fr));height:calc(100dvh - 330px);min-height:300px;gap:3px!important}
 .agday{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;padding:3px 8px!important}
 .agday .ev{flex:0 0 auto!important;max-width:46%!important}
 .agday .add{margin-left:auto;flex:none}
 .agbar .gsync{display:none}
}
@media(max-width:767px){
 body:has(.doclist) main>.hubtabs,body:has(#tasklist) main>.hubtabs{position:relative!important;top:auto!important;transform:none!important}
 html:has(.doclist),html:has(#tasklist){overflow:hidden;height:100dvh}
}
@media(max-width:767px){
 body:has(#tasklist) .donecard{display:none}
 body:has(#tasklist) .taskadd{grid-template-columns:1fr 1fr}
 body:has(#tasklist) .taskadd input[type=date],body:has(#tasklist) .taskadd select{display:none}
 body:has(#tasklist) .tasksins .insights{grid-template-columns:repeat(4,1fr)!important;gap:4px}
 body:has(#tasklist) .tasksins .itile{padding:5px 6px!important;min-height:0}
 body:has(#tasklist) .tasksins .il{font-size:.55rem!important;letter-spacing:0;white-space:normal;line-height:1.1}
 body:has(#tasklist) .tasksins .iv{font-size:1.05rem!important}
 body:has(#tasklist) .tasksins .is{display:none!important}
 body:has(#tasklist) main>.reorder>#tasklist{flex:3 1 0!important}
 body:has(#tasklist) main>.reorder>.goalslist{flex:2 1 0!important;min-height:0;max-height:none!important;overflow-y:auto}
 body:has(#tasklist) .goalsbar{flex-wrap:nowrap}
 body:has(#tasklist) .goalsbar h2{white-space:nowrap;font-size:.8rem!important;flex:none}
 body:has(#tasklist) .goalsbar h2 .muted{display:none}
 body:has(#tasklist) .goalsbar .goaladd{flex:1;width:auto}
 body:has(#tasklist) h2.secth.tk{display:none}
}
@media(max-width:767px){
 body:has(#tasklist) .tasksins .insights{display:grid!important;overflow:visible!important}
 body:has(#tasklist) .tasksins .itile{min-width:0!important;flex:none!important;width:auto!important}
 .goalslist .ngoal{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px}
 .goalslist .ngoal .bar,.goalslist .ngoal .goalbody{flex:1 1 100%;margin:0;height:6px}
 .goalslist .ngoal .moreb{margin-left:auto}
}
@media(max-width:767px){
 .agnav{display:grid!important;grid-template-columns:34px minmax(0,1fr) 34px 84px;gap:4px;align-items:center;margin:0 0 4px}
 .agnav .agtitle{font-size:.82rem!important;line-height:1.15;text-align:center;margin:0}
 .agnav a:last-child{grid-column:auto;font-size:.72rem;padding:0 4px;height:34px}
 .agbar .gsyncf,.agbar a.gsync{display:none!important}
 .agbar{gap:4px;margin:0 0 4px}
 .agweek{height:calc(100dvh - 285px)!important}
 .agday header{flex-direction:row;flex:0 0 74px;gap:4px;align-items:baseline}
}
@media(max-width:767px){
 .plancal .calnav.agnav,.card .calnav.agnav{display:grid!important;grid-template-columns:34px minmax(0,1fr) 34px 78px!important;gap:4px;align-items:center;margin:0 0 4px}
 .plancal .calnav.agnav>*,.card .calnav.agnav>*{grid-column:auto!important;grid-row:auto!important}
 .calnav.agnav .agtitle{font-size:.78rem!important}
 form.gsyncf,a.gsync{display:none!important}
 .agday header{flex-direction:column!important;flex:0 0 66px!important;gap:0!important;align-items:flex-start!important;font-size:.78rem!important;white-space:nowrap}
 .agday .add{order:9}
}
@media(max-width:767px){.plancal .calnav.agnav,.card .calnav.agnav{grid-template-columns:32px minmax(0,1fr) 32px 70px!important}.calnav.agnav a:last-child{white-space:nowrap;font-size:.66rem!important;padding:0 2px!important}.calnav.agnav .agtitle{font-size:.72rem!important}}
/* étape 81 — mobile : Projets / Albums / Terrain en largeur, kanban en bandes verticales */
@media(max-width:767px){
 .hubtabs[aria-label="Projets"]{display:flex;flex-wrap:nowrap;gap:4px;overflow:visible;position:relative!important;top:auto!important}
 .hubtabs[aria-label="Projets"] a{flex:1 1 0;min-width:0;justify-content:center;padding:7px 4px;font-size:.78rem;gap:4px;white-space:nowrap;overflow:hidden}
 .hubtabs[aria-label="Projets"] a .ic{display:none!important}
 body:has(#kanban) main{display:flex;flex-direction:column;height:calc(100dvh - 128px);overflow:hidden;padding-top:6px;padding-bottom:4px;gap:6px}
 body:has(#kanban) main>.hubtabs{flex:0 0 auto;margin:0!important}
 body:has(#kanban) main>.reorder{flex:1 1 0;min-height:0;height:auto!important;display:flex!important;flex-direction:column;gap:6px;overflow:hidden}
 body:has(#kanban) main>.reorder>*{flex:0 0 auto;margin:0!important;min-width:0}
 body:has(#kanban) main>.reorder>.kanban{flex:1 1 0;min-height:0}
 body:has(#kanban) .tasksins,body:has(#kanban) .potbar{display:none}
 html:has(#kanban){overflow:hidden;height:100dvh}
 .kanban.kfit{display:flex!important;flex-direction:row;gap:5px;overflow:hidden!important;height:auto!important;padding:0}
 .kanban.kfit .kcol{flex:0 0 40px;width:40px;padding:6px 0;min-height:0;height:100%!important;cursor:pointer;align-items:center;overflow:hidden;transition:flex-basis .2s}
 .kanban.kfit .kcol h2{writing-mode:vertical-rl;transform:rotate(180deg);flex-direction:row;margin:0;gap:8px;font-size:.72rem;white-space:nowrap;flex:1;justify-content:flex-end;align-items:center}
 .kanban.kfit .kcol h2 .kname{flex:0 1 auto;overflow:visible}
 .kanban.kfit .kcol h2 .ksum{display:none}
 .kanban.kfit .kcol h2 .count{writing-mode:horizontal-tb;transform:rotate(180deg);min-width:22px;padding:0 5px}
 .kanban.kfit .kcol .kdrop{display:none}
 .kanban.kfit .kcol.open{flex:1 1 0;width:auto;min-width:0;padding:8px;align-items:stretch;cursor:default}
 .kanban.kfit .kcol.open h2{writing-mode:horizontal-tb;transform:none;flex:none;margin:0 2px 6px;justify-content:flex-start}
 .kanban.kfit .kcol.open h2 .kname{flex:1}
 .kanban.kfit .kcol.open h2 .ksum{display:inline}
 .kanban.kfit .kcol.open h2 .count{transform:none}
 .kanban.kfit .kcol.open .kdrop{display:flex;flex-direction:column;overflow-y:auto!important;flex:1;min-height:0}
}
@media(max-width:767px){
 .kanban.kfit .kcol{flex:0 0 40px!important;width:40px!important;min-width:0!important;display:flex!important}
 .kanban.kfit .kcol.open{flex:1 1 0!important;width:auto!important}
 .kanban.kfit .kcol:not(:has(.kcard)){display:flex!important}
}
@media(max-width:767px){
 .kanban.kfit{gap:3px}
 .kanban.kfit .kcol{flex:0 0 34px!important;width:34px!important}
 .kanban.kfit .kcol.open{padding:6px}
 .kanban.kfit .kcol.open h2 .ksum,.kanban.kfit .kcol.open .kcard .kb,.kanban.kfit .kcol.open .kcard .kclient,.kanban.kfit .kcol.open .kcard .karrows,.kanban.kfit .kcol.open .kcard .kdate{display:none}
 .kanban.kfit .kcol.open h2{font-size:.66rem}
 .kanban.kfit .kcol.open .kcard{padding:7px 8px;gap:4px}
 .kanban.kfit .kcol.open .ktitle{font-size:.78rem;line-height:1.2}
 .kanban.kfit .kcol.open .kfoot{justify-content:flex-start}.kanban.kfit .kcol.open .kamt{font-size:.8rem}
 .kanban.kfit .kcol.open .khd{margin:0}
}
/* étape 81 — mobile : Mailing et Prospection denses (max d'infos, peu de hauteur) */
@media(max-width:767px){
 body:has(.proslist) main table.proslist,body:has(.mailtable) main table.mailtable{display:block;border:0}
 .proslist thead,.mailtable thead{display:none}
 .proslist tbody,.mailtable tbody{display:grid;gap:5px}
 .proslist tr,.mailtable tr{display:grid!important;gap:1px 8px;padding:7px 9px!important;margin:0!important;border:1px solid var(--line);border-radius:12px;background:var(--card);align-items:center}
 .proslist td,.mailtable td{display:block!important;padding:0!important;border:0!important;text-align:left!important;min-width:0;font-size:.76rem}
 .proslist td::before,.mailtable td::before{display:none!important}
 .proslist tr{grid-template-columns:22px minmax(0,1fr) auto;grid-template-areas:"k n s" "k c h" "k t a"}
 .proslist td:nth-child(1){grid-area:k;align-self:start}
 .proslist td:nth-child(2){grid-area:n;font-size:.86rem}
 .proslist td:nth-child(2) small{margin-left:4px}.proslist td:nth-child(2) br{display:none}
 .proslist td:nth-child(3){grid-area:c;color:var(--mut)}.proslist td:nth-child(3) br{display:none}
 .proslist td:nth-child(4){grid-area:t;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proslist td:nth-child(4) br,.proslist td:nth-child(4) .gs-wa{display:none}
 .proslist td:nth-child(5){display:none!important}
 .proslist td:nth-child(6){grid-area:h;justify-self:end}.proslist td:nth-child(6) .btn{padding:2px 7px;min-height:0;height:26px}
 .proslist td:nth-child(7){grid-area:s;justify-self:end}.proslist td:nth-child(7) select{min-width:0!important;width:auto;height:28px;font-size:.74rem;padding:0 22px 0 8px}
 .proslist td:nth-child(8){grid-area:a;justify-self:end;white-space:nowrap}.proslist td:nth-child(8) .btn{height:26px;min-height:0;padding:2px 9px;font-size:.74rem}.proslist td:nth-child(8) a:not(:first-child),.proslist td:nth-child(8) form{display:none!important}
 .mailtable tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n s" "m a"}
 .mailtable td:nth-child(1){grid-area:n;font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mailtable td:nth-child(1) br{display:none}.mailtable td:nth-child(1) .muted{display:block;font-size:.72rem;overflow:hidden;text-overflow:ellipsis}
 .mailtable td:nth-child(2){grid-area:m;color:var(--mut)}.mailtable td:nth-child(3){display:none!important}
 .mailtable td:nth-child(4){grid-area:s;justify-self:end}
 .mailtable td:nth-child(5){grid-area:a;justify-self:end;white-space:nowrap}.mailtable td:nth-child(5) .btn{height:26px;min-height:0;padding:2px 9px;font-size:.74rem}.mailtable td:nth-child(5) form{display:none}
 .mailtable td:nth-child(2){grid-area:m}
 /* en-têtes / filtres */
 body:has(.mailtable) form.filters,body:has(.proslist) form.filters{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:5px;padding:6px!important;margin:0!important}
 body:has(.mailtable) form.filters button[type=submit]{display:none}
 body:has(.mailtable) form.filters input,body:has(.mailtable) form.filters select{height:32px;font-size:.78rem;min-width:0;max-width:110px}
 body:has(.mailtable) form.filters input{max-width:none}
 body:has(.mailtable) .insights,body:has(.proslist) .insights{display:grid!important;grid-template-columns:repeat(4,1fr);gap:4px;overflow:visible}
 body:has(.mailtable) .insights .itile,body:has(.proslist) .insights .itile{min-width:0!important;flex:none!important;padding:5px 6px!important;min-height:0}
 body:has(.mailtable) .insights .is,body:has(.proslist) .insights .is,body:has(.mailtable) .insights .ichart{display:none!important}
 body:has(.mailtable) .insights .il,body:has(.proslist) .insights .il{font-size:.55rem!important;letter-spacing:0;line-height:1.1}
 body:has(.mailtable) .insights .iv,body:has(.proslist) .insights .iv{font-size:1rem!important}
 body:has(.mailtable) main,body:has(.proslist) main{gap:6px}
 body:has(.mailtable) .xmenu>summary,body:has(.proslist) .xmenu>summary{height:30px;padding:0 10px;font-size:.78rem}
 body:has(.mailtable) .listmeta,body:has(.mailtable) .tablewrap>p.muted{display:none}
 body:has(.proslist) #sequence{padding:8px 10px}
 body:has(.proslist) #sequence .btn{font-size:.76rem;padding:6px 8px;max-width:100%;white-space:normal;height:auto}
 body:has(.proslist) .card>h2{font-size:.9rem;margin:0 0 4px}
 body:has(.proslist) .chips a,body:has(.proslist) .chips.inbar a{padding:4px 10px;font-size:.74rem}
}
@media(max-width:767px){
 .proslist td:nth-child(7) select{max-width:112px!important;width:112px!important}
 .proslist td:nth-child(4){max-width:100%}
 body:has(.proslist) .tourbar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 8px;padding:6px 8px;margin:0 0 6px}
 body:has(.proslist) .tourbar>b{font-size:.78rem;white-space:nowrap}
 body:has(.proslist) .tourbar .tpick{font-size:.72rem;justify-self:end;flex-wrap:nowrap;white-space:nowrap}
 body:has(.proslist) .tourbar .tpick .btn{padding:0 8px;height:24px;min-height:0}
 body:has(.proslist) .tourbar .tstart{grid-column:1/-1;flex:none;font-size:.72rem}
 body:has(.proslist) .tourbar .tstart input{height:30px;font-size:.78rem}
 body:has(.proslist) .tourbar>.btn{grid-column:1/-1;height:32px;min-height:0;font-size:.8rem;width:100%;white-space:nowrap}
 body:has(.proslist) .findbar~*,body:has(.proslist) main{max-width:100%;overflow-x:clip}
 #sequence form,#sequence .btn{max-width:100%}
 #sequence .btn{white-space:normal!important;text-align:center}
}
@media(max-width:767px){
 .proslist tr{grid-template-columns:22px minmax(0,1fr) auto auto!important;grid-template-areas:"k n n s" "k c t t" "k h h a"!important}
 .proslist td:nth-child(2) small{display:none}
 .proslist td:nth-child(2) a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .proslist td:nth-child(6){justify-self:start}
 .proslist td:nth-child(4){justify-self:end;font-size:.74rem}
 .proslist td:nth-child(3){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 body:has(.mailtable) main>.xmenu,body:has(.proslist) main>.xmenu,body:has(.mailtable) main details.xmenu{margin:0!important}
 body:has(.mailtable) .banner,body:has(.mailtable) main>.flash{margin:0!important;padding:6px 10px!important;font-size:.76rem}
 body:has(.mailtable) .subtabs a,body:has(.proslist) .subtabs a{padding:6px 12px;font-size:.8rem}
}
@media(max-width:767px){
 #sequence .btnrow,body:has(.proslist) .card>.btnrow{display:grid!important;grid-template-columns:1fr 1fr;gap:5px!important;margin:0 0 6px!important}
 #sequence .btnrow form,body:has(.proslist) .card>.btnrow form{min-width:0}
 #sequence .btnrow .btn,body:has(.proslist) .card>.btnrow .btn{width:100%;box-sizing:border-box;height:32px;min-height:0;padding:0 6px;font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important}
 #sequence>.muted,#sequence details>summary+*{font-size:.74rem}
 #sequence>p.muted{display:none}
 form.filterbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto;gap:5px;margin:0 0 6px!important}
 form.filterbar input,form.filterbar select{height:32px;font-size:.78rem;min-width:0}
 form.filterbar select{max-width:104px}
 form.filterbar button{display:none}
 body:has(.proslist) nav.subtabs{margin-bottom:6px!important;gap:4px}
}
@media(max-width:767px){
 #sequence .btnrow,body:has(.proslist) .card>.btnrow{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
 #sequence .btnrow form,body:has(.proslist) .card>.btnrow form{width:100%;min-width:0;overflow:hidden}
 #sequence .btnrow .btn,body:has(.proslist) .card>.btnrow .btn{display:block;max-width:100%}
 body:has(.proslist) .tourbar{display:flex;flex-wrap:wrap;gap:4px 8px}
 body:has(.proslist) .tourbar>b{display:none}
 body:has(.proslist) .tourbar .tpick{flex:1 1 100%;justify-self:auto;justify-content:flex-start}
 body:has(.proslist) .tourbar .tstart{flex:1 1 100%}
 body:has(.proslist) .tourbar>.btn{flex:1 1 100%}
}
@media(max-width:767px){
 #sequence .btn{white-space:normal!important;height:auto!important;min-height:32px;line-height:1.2;overflow:visible!important;text-overflow:clip!important;word-break:break-word;width:100%;box-sizing:border-box}
 #sequence .btnrow{grid-template-columns:minmax(0,1fr)!important}
}
/* étape 81 — mobile : « À faire en priorité » juste sous les encaissements, moins d'écart avec le prochain tournage */
@media(max-width:767px){
 .mhome{margin:0 0 4px!important;gap:8px}
 [data-reorder=home2]{gap:8px!important}
 [data-reorder=home2]>.m-acts{grid-column:1/-1!important;margin:2px 0 0!important}
 .m-acts{margin-top:2px}
}
/* étape 82 — listes numérotées d'explication (Instagram…) : vraie liste, pas une ligne en colonnes */
ol.steps{display:block;list-style:decimal;padding-left:22px}ol.steps li{display:list-item;margin-bottom:6px}
[hidden]:not(.sheet){display:none!important}
/* étape 84 — personnalisation : glisser aimanté sur la grille (plus de placement libre) */
body.cust-on [data-id].dragging{opacity:.9;cursor:grabbing;box-shadow:0 18px 40px -12px rgba(0,0,0,.7),0 0 0 2px rgba(var(--acc),.7)!important;transition:none!important;pointer-events:none}
body.cust-on [data-id].drop-before{box-shadow:-4px 0 0 0 var(--accent),0 -4px 0 0 var(--accent)!important}
body.cust-on [data-id].drop-after{box-shadow:4px 0 0 0 var(--accent),0 4px 0 0 var(--accent)!important}
/* étape 84 — page Finances unique : sommaire collant + titres de partie */
.finjump{display:flex;gap:6px;position:sticky;top:64px;z-index:15;padding:6px;margin:0 0 12px;border:1px solid var(--line);border-radius:14px;background:var(--card);width:max-content;max-width:100%}
.finjump a{padding:6px 14px;border-radius:10px;font-size:.84rem;font-weight:600;color:var(--mut);text-decoration:none}
.finjump a:hover,.finjump a.on{background:var(--gold);color:var(--accent-ink)}
.finh{margin:26px 0 12px;padding-top:14px;border-top:1px solid var(--line);font-size:1.15rem;scroll-margin-top:120px}
#compta{display:block;scroll-margin-top:140px}
@media(max-width:767px){.finjump{top:0;position:static;width:auto}.finjump a{flex:1;text-align:center;padding:6px 4px;font-size:.78rem}.finh{font-size:1rem;margin:16px 0 8px}}
.finfold>summary{cursor:pointer;font-size:.84rem;font-weight:600;color:var(--accent2);padding:6px 0;list-style:none}
.finfold>summary::before{content:"▸ "}.finfold[open]>summary::before{content:"▾ "}
.finfold>summary::-webkit-details-marker{display:none}

/* étape 86 : sur téléphone, Formations, Réseaux et Trouver des clients ne sont pas dans le menu (PC inchangé) */
@media(max-width:860px){.side nav a.pconly{display:none!important}}

/* étape 89 : liste des documents envoyés aux clients (Paramètres) */
.docscat{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.docrow{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:rgba(255,255,255,.02)}
.docrow .dr-h{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.docrow .dr-h b{margin-right:4px}
.docrow p{margin:6px 0 0}.docrow .dr-a{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
.docrow .dr-a .btn{padding:5px 12px;font-size:.82rem}

/* étape 89 : suppression des tâches terminées */
.donecard .donehd{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.donecard .donehd h2{margin:0}
.donecard .row{display:flex;align-items:center;gap:10px}.donecard .row .muted{margin-left:auto}

/* Annonces : une seule page, compacte (recherche · radar · réponses/flux en onglets) */
.an-hd{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}.an-hd h2{margin:0}
.an-search{display:grid;grid-template-columns:1.4fr 1fr auto;gap:10px;align-items:end;margin:0 0 12px}.an-search label{margin:0}
.an-links{display:grid;gap:8px}.an-grp{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.an-gl{flex:0 0 158px;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:var(--mut);font-weight:700}
.an-chip{display:inline-flex;align-items:center;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--ink);font-size:.82rem;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s,transform .15s}
.an-chip:hover{border-color:rgba(var(--acc),.65);background:rgba(var(--acc),.12);color:var(--accent2);transform:translateY(-1px)}
.an-tip{margin:12px 0 0;font-size:.8rem;color:var(--mut)}
.an-import{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.an-import input{margin:0}.an-opt{grid-column:1/-1}
.an-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.an-radar .yearnav{margin-top:12px}
.an-tabs{padding-top:12px}
.an-tabbar{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:0 0 14px;padding-bottom:10px}
.an-tab{border:1px solid transparent;background:none;color:var(--mut);padding:8px 16px;border-radius:999px;font:inherit;font-weight:600;cursor:pointer}
.an-tab:hover{color:var(--ink)}.an-tab.on{background:linear-gradient(180deg,rgba(var(--acc),.28),rgba(var(--acc),.12));border-color:rgba(var(--acc),.6);color:var(--accent2)}
.an-n{display:inline-block;min-width:18px;padding:0 5px;border-radius:99px;background:rgba(var(--acc),.25);font-size:.72rem;text-align:center}
.an-pane{display:none}.an-pane.on{display:block}
.an-metiers{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.an-metiers .full{grid-column:1/-1}
.an-feed{display:grid;grid-template-columns:1fr 1.6fr auto;gap:10px;align-items:center;margin-bottom:10px}.an-feed input{margin:0}
@media(max-width:860px){.an-search,.an-import,.an-feed,.an-two{grid-template-columns:1fr}.an-gl{flex-basis:100%}}
