/* Pyllote — feuille de styles centrale (système de design). */

:root{
  /* Couleurs — principale : bleu du logo Pyllote */
  --primary:#0078FC;--primary-hover:#0066D6;--primary-text:#0062CC;--primary-soft:rgba(0,120,252,.09);--on-primary:#FFFFFF;
  --bg:#F7F7F8;--surface:#FFFFFF;--surface-2:#F4F4F5;--hover:#F4F4F5;--soft:#F1F1F3;
  --ink:#18181B;--text:#3F3F46;--muted:#71717A;--faint:#A1A1AA;--on-ink:#FFFFFF;
  --line:#E4E4E7;--line-2:#D4D4D8;
  --green:#15803D;--green-bg:#ECFDF3;--amber:#B45309;--amber-bg:#FFF7E6;--red:#C81E1E;--red-bg:#FEF2F2;--info:#0062CC;--info-bg:#EEF5FF;
  /* Alias de compatibilité (anciens noms) */
  --accent:var(--primary);--accent-hover:var(--primary-hover);--accent-text:var(--primary-text);--accent-soft:var(--primary-soft);--on-accent:var(--on-primary);
  --glass:var(--surface);--glass-strong:var(--surface);--card-shadow:none;
  /* Ombres : uniquement pour ce qui flotte (menus, fenêtres) */
  --shadow-1:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.06);--shadow-2:0 12px 32px rgba(16,24,40,.14),0 2px 6px rgba(16,24,40,.06);--gshadow:var(--shadow-2);
  /* Typographie : SF Pro (police du système) ; échelle unique 12 / 13 / 14 / 16 / 20 / 24 / 30 */
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Segoe UI Variable Text","Segoe UI",system-ui,Roboto,"Helvetica Neue",Arial,sans-serif;
  --fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:24px;--fs-3xl:30px;
  /* Espacements (échelle de 4) */
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;--s16:64px;
  /* Arrondis, dimensions, transitions */
  --r-sm:6px;--r-md:8px;--r-lg:12px;--r-full:999px;
  --h-control:36px;--h-row:44px;--side-w:248px;--nav-h:64px;--t-fast:120ms;--t:200ms;
  color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:border-box}
html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%}
body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font:400 14px/1.5 var(--font);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3,p,dl,dd{margin:0}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.ic{width:20px;height:20px;flex:none}
.h1{font-size:24px;line-height:1.25;font-weight:700;color:var(--ink);letter-spacing:-.02em}
.h2{font-size:16px;line-height:1.35;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.h-sm{font-size:14px;font-weight:600;color:var(--ink)}
.muted{color:var(--muted)}
.hint{font-size:13px;color:var(--muted);margin-top:4px}
.small{font-size:13px}
.stack>*+*{margin-top:16px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Brand */
.brand{display:inline-flex;align-items:center;gap:8px;color:var(--ink)}
.brand-mark{width:26px;height:26px}
.brand-name{font-weight:700;font-size:16px;letter-spacing:-.02em}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 16px;border-radius:8px;border:1px solid transparent;font-weight:600;font-size:14px;line-height:1.2;text-decoration:none;white-space:nowrap}
.btn-primary{background:var(--ink);color:var(--on-ink)}
.btn-primary:hover{opacity:.9}
.btn-secondary{background:var(--surface);border-color:var(--line-2);color:var(--ink)}
.btn-secondary:hover{background:var(--hover)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--soft)}
.btn-danger{background:var(--surface);border-color:var(--line-2);color:var(--red)}
.btn-block{width:100%}
.btn-sm{min-height:40px;padding:0 12px;font-size:14px}
.btn .ic{width:18px;height:18px}
.link{background:none;border:0;padding:4px 0;color:var(--ink);font-weight:600;font-size:14px;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-2)}
.link:hover{text-decoration-color:var(--ink)}
.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:8px;border:0;background:transparent;color:var(--ink);flex:none}
.icon-btn:hover{background:var(--soft)}
.icon-btn.sm{width:36px;height:36px}
.icon-btn.sm .ic{width:18px;height:18px}

/* Forms */
.field label{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:4px}
.req{color:var(--red);font-weight:600}
.field input,.field select,.field textarea,.search input{width:100%;min-height:48px;padding:12px 12px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);color:var(--ink);font-size:16px}
.field textarea{min-height:92px;resize:vertical;line-height:1.45}
.field select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E6E77' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:20px}
.field input:focus,.field select:focus,.field textarea:focus,.search input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--soft)}
.field input[readonly]{background:var(--soft);color:var(--muted)}
.has-err input,.has-err select,.has-err textarea{border-color:var(--red)}
.err{font-size:13px;color:var(--red);margin-top:4px;font-weight:500}
.form-note{font-size:13px;color:var(--muted)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid-3{display:grid;grid-template-columns:.8fr 1.2fr;gap:12px}
.grid-3 .span-2{grid-column:1/-1}
@media(min-width:560px){.grid-3{grid-template-columns:.7fr 1.3fr 1fr}.grid-3 .span-2{grid-column:auto}}
.search{position:relative}
.search .ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.search input{padding-left:40px}
.pw{position:relative}
.pw input{padding-right:48px}
.pw .icon-btn{position:absolute;right:2px;top:2px;color:var(--muted)}
.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-2);border-radius:8px;padding:4px;background:var(--soft)}
.seg button{min-height:42px;border:0;border-radius:8px;background:transparent;font-weight:600;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
/* F2 : sélecteur à trois choix (rythme de facturation d’un contrat d’entretien) */
.seg.seg-3{grid-template-columns:repeat(3,1fr)}
.seg.seg-3 button{padding:0 6px}
.maint-row{cursor:pointer}
/* FER-014 : sur iPhone, nom sur toute la largeur, sous-ligne entière (sans « … »), puis montant à gauche et état à droite. */
.maint-meta{display:flex;align-items:center;gap:12px;flex:none}
@media(max-width:699px){.maint-row{flex-wrap:wrap;row-gap:6px}.maint-row .crm-row-t{flex:1 1 100%}.maint-row .crm-row-t small{white-space:normal;overflow:visible}.maint-row .maint-meta{flex:1 1 100%;justify-content:space-between}.maint-row .maint-meta .crm-c{width:auto}}
.switch{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px}
.switch input{appearance:none;-webkit-appearance:none;width:46px;height:28px;border-radius:999px;background:var(--line-2);position:relative;flex:none;cursor:pointer;margin:0}
.switch input::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .15s}
.switch input:checked{background:var(--ink)}
.switch input:checked::after{transform:translateX(18px);background:var(--on-ink)}
.check{display:flex;gap:8px;align-items:center;font-weight:500;color:var(--ink)}
.check input{width:20px;height:20px;accent-color:var(--ink)}
.check.check-top{align-items:flex-start}.check-top input{flex:none;margin-top:1px}.check-hint{display:block;font-weight:400}
details.more{border:1px solid var(--line);border-radius:8px;background:var(--surface)}
details.more summary{padding:12px 16px;font-weight:600;color:var(--ink);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
details.more summary::-webkit-details-marker{display:none}
details.more summary::after{content:"Afficher";font-size:13px;color:var(--muted);font-weight:500}
details.more[open] summary::after{content:"Masquer"}
details.more .more-body{padding:0 16px 16px}

/* Lists */
.list{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.row{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:12px 16px;border:0;border-top:1px solid var(--line);background:transparent;text-align:left;color:var(--text);text-decoration:none}
.row:first-child{border-top:0}
button.row:hover,a.row:hover{background:var(--hover)}
.row-ic{width:38px;height:38px;border-radius:8px;background:var(--soft);display:grid;place-items:center;color:var(--ink);flex:none}
.row-ic .ic{width:19px;height:19px}
.row-main{flex:1;min-width:0;display:flex;flex-direction:column}
.row-title{font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-sub{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-meta{font-size:12px;color:var(--faint)}
.row-end{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none;text-align:right}
.row-date{font-size:13px;color:var(--muted);white-space:nowrap}
.row .chev{color:var(--faint);width:18px;height:18px}
.row.is-selected{background:var(--soft)}
.row-add{color:var(--ink);font-weight:600}
.row-add .row-ic{background:transparent;border:1px solid var(--line-2)}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--soft);color:var(--ink);display:grid;place-items:center;font-weight:700;font-size:13px;flex:none;letter-spacing:.02em}
.avatar.sm{width:32px;height:32px;font-size:12px}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;line-height:1;padding:4px 8px;border-radius:999px;background:var(--soft);color:var(--text);white-space:nowrap}
.badge.green{background:var(--green-bg);color:var(--green)}
.badge.amber{background:var(--amber-bg);color:var(--amber)}
.badge.red{background:var(--red-bg);color:var(--red)}
.badge.ink{background:var(--ink);color:var(--on-ink)}
.dl{display:grid;gap:0}
.dl>div{display:flex;justify-content:space-between;gap:16px;padding:12px 16px;border-top:1px solid var(--line)}
.dl>div:first-child{border-top:0}
.dl dt{color:var(--muted);font-size:14px}
.dl dd{color:var(--ink);font-weight:600;text-align:right;word-break:break-word}

/* Alerts & empty */
.alert{padding:12px 12px;border-radius:8px;font-size:14px;line-height:1.45;display:flex;gap:8px;align-items:flex-start}
.alert .ic{margin-top:1px}
.alert-red{background:var(--red-bg);color:var(--red)}
.alert-amber{background:var(--amber-bg);color:var(--amber)}
.alert-soft{background:var(--soft);color:var(--text)}
.empty{text-align:center;padding:32px 20px;border:1px solid var(--line-2);border-radius:12px;background:var(--surface)}
.empty-t{font-weight:700;color:var(--ink);font-size:16px}
.empty .muted{margin-top:4px}
.empty .btn{margin-top:16px}
.empty-inline{padding:16px;border:1px solid var(--line-2);border-radius:12px;color:var(--muted);font-size:14px;background:var(--surface)}

/* Auth */
.auth{min-height:100vh;display:flex;justify-content:center;padding:40px 20px 48px}
.auth-col{width:100%;max-width:400px}
.auth-title{margin-top:32px}
.auth .muted{margin-top:4px;margin-bottom:24px}
.demo-box{margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.demo-box .hint{margin:4px 0 12px}
/* Pages légales sous la connexion et l’inscription */
.auth-legal{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:28px;font-size:13px}
.auth-legal a,.su-legal a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.auth-legal a:hover,.su-legal a:hover{color:var(--ink)}
.su-legal{margin:2px 0 0}

/* Shell */
.shell{display:flex;min-height:100vh}
.side{display:none}
.main{flex:1;min-width:0;padding-bottom:calc(var(--nav-h) + 24px + env(safe-area-inset-bottom,0px))}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;padding:8px 12px 8px 16px;padding-top:calc(10px + env(safe-area-inset-top,0px));margin-top:calc(-1 * env(safe-area-inset-top,0px));background:var(--bg);border-bottom:1px solid var(--line)}
.topbar .co{flex:1;min-width:0;font-weight:600;color:var(--ink);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .brand-mark{width:24px;height:24px}
.topbar .avatar-btn{border:0;background:none;padding:0}
.sync-slot{display:flex}
.sync{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap;padding:4px 8px;border-radius:999px}
.sync .ic{width:16px;height:16px}
.sync.is-off{background:var(--amber-bg);color:var(--amber)}
.sync.is-busy{color:var(--ink)}
.offline{background:var(--amber-bg);color:var(--amber);font-size:13px;padding:8px 16px;display:flex;gap:8px;align-items:flex-start}
.offline .ic{width:18px;height:18px;margin-top:1px}
.page{max-width:880px;margin:0 auto;padding:20px 16px 24px}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:24px 0 8px}
.back{display:inline-flex;align-items:center;gap:4px;border:0;background:none;color:var(--muted);font-weight:600;font-size:14px;padding:4px 8px 4px 2px;margin-bottom:8px}
.back:hover{color:var(--ink)}
.back .ic{width:18px;height:18px}
.hide-m{display:none}

/* Bottom nav */
.bnav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(var(--n),1fr);background:var(--surface);border-top:1px solid var(--line);padding:4px 4px calc(6px + env(safe-area-inset-bottom,0px))}
.bn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:54px;border:0;background:none;color:var(--muted);font-size:12px;font-weight:600;border-radius:8px}
.bn .ic{width:22px;height:22px}
.bn.is-on{color:var(--ink)}
.bn-plus{display:grid;place-items:center;width:44px;height:32px;border-radius:8px;background:var(--ink);color:var(--on-ink)}
.bn-create{color:var(--ink)}

@media(min-width:960px){
  .side{display:flex;flex-direction:column;gap:16px;width:252px;flex:none;position:sticky;top:0;height:100vh;padding:20px 16px;border-right:1px solid var(--line);background:var(--surface)}
  .side-co{padding:0 4px}
  .side-co b{display:block;color:var(--ink);font-size:14px;font-weight:600;line-height:1.3}
  .side-co span{font-size:12px;color:var(--muted)}
  .side-nav{display:flex;flex-direction:column;gap:2px}
  .side-link{display:flex;align-items:center;gap:12px;min-height:42px;padding:0 8px;border:0;border-radius:8px;background:none;color:var(--text);font-weight:500;text-align:left}
  .side-link:hover{background:var(--soft)}
  .side-link.is-on{background:var(--soft);color:var(--ink);font-weight:600}
  .side-user{margin-top:auto;display:flex;align-items:center;gap:8px;padding:12px 4px 0;border-top:1px solid var(--line)}
  .side-user .su{flex:1;min-width:0}
  .su-name{font-weight:600;color:var(--ink);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .su-role{font-size:12px;color:var(--muted)}
  .bnav{display:none}
  .main{padding-bottom:48px}
  .topbar{justify-content:flex-end;background:transparent;border:0;position:static;padding:12px 24px 0}
  .topbar .co,.topbar .brand,.topbar .avatar-btn{display:none}
  .page{padding:8px 40px 32px}
  .hide-m{display:inline-flex}
  .hide-d{display:none!important}
}

/* Dashboard */
.hello{font-size:16px;color:var(--muted);font-weight:500;margin-bottom:2px}
.actions{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.action{display:flex;align-items:center;gap:12px;width:100%;min-height:70px;padding:12px 12px 12px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:left;color:var(--ink)}
.action:hover{border-color:var(--line-2);background:var(--hover)}
.action.is-primary{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}
.action.is-primary:hover{opacity:.94}
.action-ic{width:44px;height:44px;border-radius:8px;background:var(--soft);display:grid;place-items:center;flex:none}
.is-primary .action-ic{background:rgba(128,128,128,.24)}
.action-txt{flex:1;min-width:0}
.action-t{display:block;font-weight:600;font-size:16px;line-height:1.3}
.action-h{display:block;font-size:13px;color:var(--muted);margin-top:1px}
.is-primary .action-h{color:inherit;opacity:.72}
.action .chev{opacity:.45;width:18px;height:18px}
.quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.quick button{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-weight:600;font-size:14px;color:var(--ink)}
.quick button:hover{background:var(--hover)}
.quick .ic{width:18px;height:18px;color:var(--muted)}
@media(min-width:1120px){
  .dash{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}
  .dash-side .sec-head:first-child{margin-top:64px}
}

/* Chips */
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin:0 -16px 12px;padding-left:16px;padding-right:16px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;min-height:38px;padding:0 12px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);font-weight:600;font-size:14px;color:var(--text)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}
@media(min-width:960px){.chips{margin-left:0;margin-right:0;padding-left:0;padding-right:0;flex-wrap:wrap}}

/* Doc detail */
.doc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.doc-head p{margin-top:4px;font-size:14px}
.doc-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.doc-note{margin-bottom:16px}
.doc-note .link{font-size:inherit}
@media(max-width:559px){.doc-actions .btn{flex:1 1 100%}}

/* Paper */
.paper-frame{width:100%;overflow:hidden;position:relative}
.paper{width:794px;min-height:1123px;margin:0 auto;background:#fff;color:#1F1F23;padding:56px 60px 96px;transform-origin:top left;position:relative;box-shadow:0 0 0 1px rgba(0,0,0,.07),0 2px 6px rgba(0,0,0,.05);font:400 12.5px/1.5 var(--font)}
.paper-frame.scaled .paper{margin:0}
.p-top{display:flex;justify-content:space-between;gap:24px}
.p-co{display:flex;gap:14px;align-items:flex-start;color:#4A4A52}
.p-co-name{font-weight:700;color:#1F1F23;font-size:14.5px}
.p-logo{width:56px;height:56px;object-fit:contain}
.p-mono{width:52px;height:52px;border-radius:10px;background:#1F1F23;color:#fff;display:grid;place-items:center;font-weight:700;font-size:17px;letter-spacing:.02em;flex:none}
.p-doc{text-align:right}
.p-type{font-size:22px;font-weight:700;letter-spacing:-.02em;color:#1F1F23}
.p-meta{margin-top:8px;margin-left:auto;border-collapse:collapse}
.p-meta td{padding:2px 0 2px 16px;text-align:right}
.p-meta td:first-child{color:#6E6E77}
.p-meta td:last-child{font-weight:600}
.p-parties{display:flex;justify-content:flex-end;margin-top:34px}
.p-to{width:46%;padding:14px 16px;background:#F5F5F6;border-radius:8px;color:#4A4A52}
.p-lbl{font-size:11.5px;color:#6E6E77;font-weight:600;margin-bottom:4px}
.p-to-name{font-weight:700;color:#1F1F23;font-size:13.5px}
.p-table{width:100%;border-collapse:collapse;margin-top:30px}
.p-table th{text-align:left;font-size:11.5px;font-weight:600;color:#6E6E77;padding:8px 8px;border-bottom:1.5px solid #1F1F23}
.p-table td{padding:10px 8px;border-bottom:1px solid #E4E4E7;vertical-align:top}
.p-table .n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.p-table th:first-child,.p-table td:first-child{padding-left:0}
.p-table th:last-child,.p-table td:last-child{padding-right:0}
.p-sum{display:flex;justify-content:flex-end;margin-top:14px}
.p-sum table{border-collapse:collapse;min-width:280px}
.p-sum td{padding:5px 0;font-variant-numeric:tabular-nums}
.p-sum td:last-child{text-align:right;padding-left:24px;white-space:nowrap}
.p-sum .p-ttc td{border-top:1.5px solid #1F1F23;padding-top:9px;font-weight:700;font-size:14.5px}
.p-words{margin-top:22px;color:#4A4A52}
.p-words strong{color:#1F1F23}
.p-terms{margin-top:22px;color:#4A4A52}
.p-mentions{font-size:12px;line-height:1.5}
.p-mentions div+div{margin-top:4px}
.p-sign{margin-top:28px;display:flex;justify-content:flex-end}
.p-sign-box{width:46%;height:92px;border:1px solid #D1D1D6;border-radius:8px;padding:10px 12px;color:#8A8A92;font-size:11.5px}
.p-sign>div{width:46%}
.p-sign>div .p-sign-box{width:100%}
.p-foot{position:absolute;left:60px;right:60px;bottom:36px;padding-top:12px;border-top:1px solid #E4E4E7;font-size:10.5px;color:#8A8A92;text-align:center;line-height:1.5}
/* Facture : brouillon sans valeur, motif d’avoir, empreinte d’intégrité */
.p-draft{margin:-28px 0 18px;padding:7px 12px;border:1px solid #C9A227;border-radius:6px;color:#8A6D00;background:#FFF9E6;font-size:11px;font-weight:600;letter-spacing:.02em;text-align:center;text-transform:uppercase}
.p-reason{margin:0 0 18px}
.p-efact{display:flex;gap:14px;align-items:center;margin-top:18px;padding:10px 12px;border:1px solid #E4E4E7;border-radius:8px;width:max-content;max-width:100%}
.p-efact .qr{display:block;flex:none}
.p-efact-n{font:600 12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:#1F1F23}
.p-efact-sim{margin-top:2px;font-size:10.5px;font-weight:600;color:#8A6D00;text-transform:uppercase;letter-spacing:.02em}
.p-efact-wait{color:#6E6E73}
.efact-sum{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.nif-quick{display:flex;gap:10px;align-items:flex-end;margin:0 0 14px}.nif-quick .field{flex:1;margin:0}.nif-quick .btn{height:48px;flex:none}@media (max-width:560px){.nif-quick{flex-direction:column;align-items:stretch}}
.p-hash{margin-top:2px;font:400 9.5px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:#A1A1AA;letter-spacing:.02em}
.p-h{font-size:18px;font-weight:700;color:#1F1F23;margin-top:34px;letter-spacing:-.01em}
.p-sub{color:#6E6E77;margin-top:2px}
.p-body{margin-top:18px;color:#34343A;font-size:12.5px}
.p-body p{margin:0 0 9px}
.p-art{font-weight:700;color:#1F1F23;margin-top:14px!important;margin-bottom:3px!important}
.p-sigs{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:30px}
.p-sigs .p-sign-box{width:100%}
.p-disclaimer{margin-top:22px;padding:10px 12px;background:#F5F5F6;border-radius:8px;color:#6E6E77;font-size:11px}
.p-kv{width:100%;border-collapse:collapse;margin-top:24px}
.p-kv th{width:32%;text-align:left;font-weight:600;color:#6E6E77;font-size:12px;padding:10px 12px 10px 0;border-bottom:1px solid #E4E4E7;vertical-align:top}
.p-kv td{padding:10px 0;border-bottom:1px solid #E4E4E7;color:#1F1F23}
.p-lines{margin-top:8px}
.p-lines div{height:26px;border-bottom:1px solid #E4E4E7}
.p-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.p-field{border:1px solid #D1D1D6;border-radius:8px;padding:9px 12px;min-height:54px;color:#8A8A92;font-size:11.5px}

/* Wizard */
.wiz{min-height:100vh;display:flex;flex-direction:column}
.wiz-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;padding:8px 12px 0 4px;padding-top:calc(8px + env(safe-area-inset-top,0px));margin-top:calc(-1 * env(safe-area-inset-top,0px));background:var(--bg)}
.wiz-title{flex:1;min-width:0}
.wiz-name{font-weight:700;color:var(--ink);font-size:16px}
.wiz-step{font-size:13px;color:var(--muted)}
.progress{display:flex;gap:4px;padding:8px 16px 0;background:var(--bg);position:sticky;top:calc(52px + env(safe-area-inset-top,0px));z-index:19}
.progress span{flex:1;height:3px;border-radius:6px;background:var(--line)}
.progress span.on{background:var(--ink)}
.wiz-body{flex:1;width:100%;max-width:720px;margin:0 auto;padding:20px 16px calc(120px + env(safe-area-inset-bottom,0px))}
.wiz-body .h2{margin-bottom:12px}
.wiz-foot{position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--surface);border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}
.wiz-foot-in{max-width:720px;margin:0 auto;display:flex;gap:8px;align-items:center}
.wiz-foot-in .btn{flex:1}
.foot-total{flex:1;display:flex;flex-direction:column;line-height:1.2}
.foot-total span{font-size:12px;color:var(--muted)}
.foot-total strong{font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.client-chip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px;border-radius:8px;background:var(--soft);margin-bottom:20px;font-size:14px}
.client-chip strong{color:var(--ink)}
.line{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px 12px 12px;margin-bottom:12px}
.line-head{display:flex;justify-content:space-between;align-items:center;margin:-4px -6px 8px 0;min-height:36px}
.line-n{font-size:13px;font-weight:600;color:var(--muted)}
.line .field+.grid-3{margin-top:12px}
.line-total{display:flex;justify-content:space-between;margin-top:12px;padding-top:8px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.line-total strong{color:var(--ink);font-variant-numeric:tabular-nums}
.totals{margin-top:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.totals .dl dd{font-variant-numeric:tabular-nums}
.totals .ttc dt,.totals .ttc dd{color:var(--ink);font-weight:700;font-size:16px}
.preview-note{margin-bottom:16px}
@media(min-width:960px){
  .wiz-body{padding-top:32px}
  .wiz-top{padding-left:20px;padding-right:24px}
  .progress{padding-left:20px;padding-right:24px}
}

/* Success */
.success{max-width:460px;margin:24px auto 0;text-align:center}
.success-ic{width:56px;height:56px;border-radius:50%;background:var(--green-bg);color:var(--green);display:grid;place-items:center;margin:0 auto 16px}
.success-ic .ic{width:28px;height:28px}
.success .muted{margin-top:4px}
.file-row{display:flex;align-items:center;gap:12px;text-align:left;margin:24px 0;padding:12px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.file-ic{width:40px;height:48px;border-radius:6px;background:var(--red-bg);color:var(--red);display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}
.file-row .row-main{flex:1}

/* PDF viewer */
.pdfv{min-height:100vh;background:#3A3A40;display:flex;flex-direction:column}
.pdfv-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;padding:8px 12px 8px 4px;padding-top:calc(8px + env(safe-area-inset-top,0px));margin-top:calc(-1 * env(safe-area-inset-top,0px));background:#26262B;color:#fff}
.pdfv-top .icon-btn{color:#fff}
.pdfv-top .icon-btn:hover{background:rgba(255,255,255,.1)}
.pdfv-name{font-weight:600;font-size:14px}
.pdfv-sub{font-size:12px;color:#B4B4BC}
.pdfv-body{padding:16px 12px 40px;max-width:860px;width:100%;margin:0 auto}

/* Sheet */
.overlay{position:fixed;inset:0;z-index:75;background:rgba(12,12,14,.45);display:flex;align-items:flex-end;justify-content:center}
.sheet{width:100%;max-height:92vh;overflow:auto;background:var(--surface);border-radius:12px 12px 0 0;padding:8px 20px calc(24px + env(safe-area-inset-bottom,0px));animation:up .2s ease-out}
.sheet::before{content:"";display:block;width:40px;height:4px;border-radius:6px;background:var(--line-2);margin:2px auto 8px}
.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 -8px 16px 0}
.sheet .actions{margin-top:0}
.sheet .list{border-radius:12px}
.sheet-user{display:flex;align-items:center;gap:12px;padding:4px 0 16px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.sheet-user .avatar{width:46px;height:46px;font-size:14px}
.sheet-actions{display:flex;flex-direction:column;gap:8px;margin-top:20px}
@keyframes up{from{transform:translateY(24px);opacity:.4}to{transform:none;opacity:1}}
@media(min-width:640px){
  .overlay{align-items:center;padding:24px}
  .sheet{max-width:520px;border-radius:12px;padding:20px 24px 24px}
  .sheet::before{display:none}
  .sheet-actions{flex-direction:row-reverse}
  .sheet-actions .btn{flex:1}
}
@media(prefers-reduced-motion:reduce){.sheet{animation:none}.switch input::after{transition:none}}

/* Toast & busy */
#toast-root{position:fixed;left:0;right:0;bottom:calc(var(--nav-h) + 18px + env(safe-area-inset-bottom,0px));z-index:80;display:flex;justify-content:center;pointer-events:none;padding:0 16px}
body.no-nav #toast-root{bottom:calc(96px + env(safe-area-inset-bottom,0px))}
@media(min-width:960px){#toast-root{bottom:28px}}
.toast{display:inline-flex;align-items:center;gap:8px;max-width:440px;padding:12px 16px;border-radius:12px;background:var(--ink);color:var(--on-ink);font-weight:600;font-size:14px;box-shadow:0 6px 24px rgba(0,0,0,.18)}
.toast .ic{width:18px;height:18px}
.toast.err{background:var(--red);color:#fff}
.busy{position:fixed;inset:0;z-index:90;background:rgba(12,12,14,.35);display:grid;place-items:center}
.busy-box{display:flex;align-items:center;gap:12px;padding:16px 20px;border-radius:12px;background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.spinner{width:20px;height:20px;border:2.5px solid var(--line-2);border-top-color:var(--ink);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Planning */
.week-nav{display:flex;align-items:center;gap:4px;margin-bottom:12px}
.week-label{flex:1;text-align:center;font-weight:600;color:var(--ink);font-size:14px}
.plan-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.plan-tools .field{flex:1 1 200px}
.plan-tools .btn{flex:1 1 auto}
.day{margin-top:20px}
.day-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.day-t{font-size:14px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px}
.a-time{width:64px;flex:none;font-size:14px;line-height:1.35;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.a-time .a-end{color:var(--muted);font-weight:500}
.day-empty{font-size:14px;color:var(--faint);padding:2px 0 4px}
.plan-grid{display:none}
@media(min-width:960px){
  .plan-days{display:none}
  .plan-grid{display:block;overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-top:12px}
  .plan-grid table{border-collapse:collapse;width:100%;min-width:860px;table-layout:fixed}
  .plan-grid th,.plan-grid td{border-left:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top;padding:8px}
  .plan-grid tr:last-child td{border-bottom:0}
  .plan-grid th:first-child,.plan-grid td:first-child{border-left:0}
  .plan-grid thead th{font-size:13px;font-weight:600;color:var(--muted);text-align:left;padding:8px 8px}
  .plan-grid thead th b{display:block;color:var(--ink);font-size:14px}
  .plan-grid thead th.is-today b{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
  .plan-grid .emp-col{width:180px}
  .emp-cell{display:flex;gap:8px;align-items:center;padding:4px 2px}
  .emp-cell .su-name{font-size:14px;font-weight:600;color:var(--ink)}
  .emp-cell .su-role{font-size:12px;color:var(--muted)}
  .chip-a{display:block;width:100%;text-align:left;background:var(--soft);border:0;border-radius:8px;padding:8px 8px;margin-bottom:4px;color:var(--ink);line-height:1.3}
  .chip-a:hover{background:var(--line)}
  .chip-time{display:block;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
  .chip-m{display:block;font-size:13px;font-weight:600}
  .chip-l{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cell-add{width:100%;min-height:30px;border:1px solid transparent;border-radius:8px;background:none;color:transparent;font-size:16px;line-height:1}
  td:hover .cell-add,.cell-add:focus-visible{border-color:var(--line-2);color:var(--muted)}
}

/* Settings */
.set-sec{margin-top:4px}
.set-sec+.set-sec{margin-top:32px}
.set-sec>.h2{margin-bottom:4px}
.set-sec>.muted{font-size:14px;margin-bottom:12px}
.logo-row{display:flex;align-items:center;gap:12px}
.logo-prev{width:64px;height:64px;border-radius:12px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;overflow:hidden;flex:none}
.logo-prev img{width:100%;height:100%;object-fit:contain}
.logo-prev .p-mono{width:48px;height:48px;font-size:15px}
.file-btn{position:relative;overflow:hidden}
.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.role-card{padding:12px 16px;border-top:1px solid var(--line)}
.role-card:first-child{border-top:0}
.role-card h3{font-size:14px;color:var(--ink);display:flex;justify-content:space-between;gap:8px}
.role-card p{font-size:14px;color:var(--muted);margin-top:2px}
.creds{border:1px solid var(--line);border-radius:12px;margin:16px 0}
.creds dd{font-variant-numeric:tabular-nums;letter-spacing:.02em}
.row-title-wrap{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}.nw{white-space:nowrap}
input[list]::-webkit-calendar-picker-indicator{display:none!important}

/* Utilisateurs, rôles, permissions */
details.tip{text-align:center}
.auth-forgot{text-align:center;margin:0}
details.tip summary{display:inline-block;list-style:none;cursor:pointer}
details.tip summary::-webkit-details-marker{display:none}
details.tip .hint{text-align:left;margin-top:8px;padding:12px 12px;background:var(--soft);border-radius:8px}
.sec-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.sec-row .muted{margin-top:2px}
@media(max-width:559px){.sec-row{flex-direction:column;align-items:stretch}.sec-row .btn{width:100%}}
.only-d{display:none}
@media(min-width:720px){.only-d{display:block}.only-m{display:none}}
.utable{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:14px}
.utable th{font-size:12px;font-weight:600;color:var(--muted);text-align:left;padding:8px 16px;border-bottom:1px solid var(--line)}
.utable td{padding:12px 16px;border-top:1px solid var(--line);vertical-align:middle;color:var(--text)}
.utable tbody tr:first-child td{border-top:0}
.utable tbody tr{cursor:pointer}
.utable tbody tr:hover{background:var(--hover)}
.utable .n{text-align:right;white-space:nowrap}
.cell-user{display:flex;align-items:center;gap:12px;min-width:0}
.cell-name{background:none;border:0;padding:0;font-weight:600;color:var(--ink);text-align:left;font-size:inherit}
.badges{display:flex;flex-wrap:wrap;gap:4px}
.lvl{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 4px;border-radius:8px;background:var(--soft);font-weight:700;color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums}
.perm{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px 16px 8px}
.perm+.perm{margin-top:8px}
.perm-h{font-weight:700;color:var(--ink);font-size:14px}
.perm-opts{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;margin-top:4px}
.perm-opts.wide{grid-template-columns:1fr}
@media(min-width:640px){.perm-opts{grid-template-columns:repeat(4,1fr)}.perm-opts.wide{grid-template-columns:1fr 1fr}}
.perm-opts .check{min-height:42px;font-size:14px}
.check input:disabled+span{color:var(--faint)}
.check-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line);cursor:pointer}
.check-row:first-child{border-top:0}
.check-row input{width:20px;height:20px;accent-color:var(--ink);flex:none;margin:0}
.check-row.is-off{cursor:default}
.field label.check-row{display:flex;margin-bottom:0;font-size:14px;font-weight:500}
.check-row.is-off .row-title{color:var(--faint)}
.dl-perm>div{display:block}
.dl-perm dd{text-align:left;font-weight:500;margin-top:2px;color:var(--text)}
.log-t{font-weight:500!important;color:var(--text)!important;font-size:14px}
/* ---------- Tableau de bord ---------- */
.dash2{display:flex;flex-direction:column;gap:12px}
.dash-head{margin-bottom:2px}
.dash-date{font-size:13px;color:var(--muted);font-weight:500;margin-bottom:2px}
.dash-grid{display:grid;gap:12px;align-items:start}
@media (min-width:1000px){.dash-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px 8px}
.h-card{font-size:14px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.card-p{padding:0 16px 8px}
.card-empty{padding:4px 16px 16px;color:var(--muted);font-size:14px}
.list.flat{border:0;border-radius:0;background:transparent}
.list.flat .row:first-child{border-top:1px solid var(--line)}
.quick-create{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px 2px}
.quick-create::-webkit-scrollbar{display:none}
.qc{flex:none;display:inline-flex;align-items:center;gap:4px;min-height:40px;padding:0 12px;border:1px solid var(--line-2);border-radius:999px;background:var(--surface);color:var(--ink);font-weight:600;font-size:14px}
.qc:hover{background:var(--hover)}
.qc .ic{width:17px;height:17px}
@media (min-width:900px){.quick-create{margin:0;padding:0;flex-wrap:wrap}}
.notice{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border:1px solid var(--line-2);border-left:3px solid var(--ink);border-radius:12px;background:var(--surface);text-align:left;color:var(--text)}
.notice-ic{width:38px;height:38px;border-radius:8px;background:var(--soft);display:grid;place-items:center;color:var(--ink);flex:none}
.notice-t{display:block;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.notice-b{display:block;color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* ---------- Navigation : compteurs ---------- */
.nav-count{margin-left:auto;min-width:20px;height:20px;padding:0 4px;border-radius:999px;background:var(--ink);color:var(--on-ink);font-size:12px;font-weight:700;display:inline-grid;place-items:center}
.bn-ic{position:relative;display:inline-grid;place-items:center}
.bn-dot{position:absolute;top:-2px;right:-4px;width:9px;height:9px;border-radius:50%;background:var(--red);border:2px solid var(--surface)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.04em}
/* ---------- Messagerie ---------- */
.msg-acts{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 16px}
.conv-row.is-unread .row-title{font-weight:700}
.conv-row.is-unread .row-sub{color:var(--text);font-weight:500}
.unread{min-width:20px;height:20px;padding:0 4px;border-radius:999px;background:var(--ink);color:var(--on-ink);font-size:12px;font-weight:700;display:inline-grid;place-items:center}
.conv{display:flex;flex-direction:column;min-height:calc(100vh - 190px)}
.conv-head{display:flex;align-items:center;gap:12px;padding:4px 0 12px;border-bottom:1px solid var(--line)}
.conv-title{font-size:16px;font-weight:700;color:var(--ink);letter-spacing:-.01em;line-height:1.3}
.msgs{flex:1;display:flex;flex-direction:column;gap:2px;padding:12px 0 16px}
.msgs-empty{margin:auto;padding:40px 0;color:var(--muted);font-size:14px;text-align:center}
.msgs-more{text-align:center;padding:4px 0 8px}
.msg-day{display:flex;justify-content:center;margin:12px 0 8px}
.msg-day span{font-size:12px;font-weight:600;color:var(--muted);background:var(--soft);padding:4px 8px;border-radius:999px}
.msg{display:flex;flex-direction:column;align-items:flex-start;max-width:min(78%,560px);margin-top:4px}
.msg.me{align-self:flex-end;align-items:flex-end}
.msg-author{font-size:12px;font-weight:600;color:var(--muted);margin:8px 0 4px 4px}
.bubble{padding:8px 12px;border-radius:12px 12px 12px 6px;background:var(--surface);border:1px solid var(--line);color:var(--ink);font-size:14px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}
.msg.me .bubble{background:var(--ink);border-color:var(--ink);color:var(--on-ink);border-radius:12px 12px 6px 12px}
.bubble.is-deleted,.msg.me .bubble.is-deleted{background:transparent;border:1px solid var(--line-2);color:var(--muted);font-style:italic;font-size:14px}
.msg-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--faint);margin:4px 4px 0}
.seen{display:inline-flex;align-items:center;gap:4px;color:var(--green);font-weight:600}
.seen .ic{width:14px;height:14px}
.msg-del{border:0;background:none;padding:2px 0;color:var(--muted);font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:2px;opacity:0;transition:opacity .15s}
.msg:hover .msg-del,.msg-del:focus{opacity:1}
@media (hover:none){.msg-del{opacity:1}}
.atts{display:flex;flex-direction:column;gap:4px;margin-top:4px;align-items:inherit}
.att-img img{display:block;max-width:min(260px,64vw);max-height:260px;border-radius:12px;border:1px solid var(--line);background:var(--soft)}
.att-file{display:flex;align-items:center;gap:8px;min-width:220px;max-width:320px;padding:8px 12px 8px 8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);text-decoration:none}
.att-file .file-ic{width:34px;height:40px;font-size:12px}
.att-file .file-ic .ic{width:18px;height:18px}
.att-file:hover{background:var(--hover)}
.composer{position:sticky;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));background:var(--bg);padding:8px 0 8px;border-top:1px solid var(--line);z-index:10}
@media (min-width:900px){.composer{bottom:0;padding-bottom:16px}}
.composer.is-ro{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;padding:12px 4px}
.composer-row{display:flex;align-items:flex-end;gap:8px}
.composer textarea{flex:1;min-height:46px;max-height:180px;resize:none;padding:12px 12px;border:1px solid var(--line-2);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;line-height:1.45}
.composer textarea:focus{outline:2px solid var(--ink);outline-offset:-1px}
.composer .send{min-width:46px;width:46px;height:46px;min-height:46px;padding:0;border-radius:12px}
.composer .attach{cursor:pointer;color:var(--muted)}
.pending{display:flex;flex-wrap:wrap;gap:4px}
.pending:not(:empty){margin-bottom:8px}
.pend{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:4px 4px 4px 8px;border:1px solid var(--line-2);border-radius:999px;background:var(--surface);font-size:13px;color:var(--text)}
.pend.is-up{padding-right:8px;color:var(--muted)}
.pend-n{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pend .icon-btn{width:28px;height:28px}
.spinner.sm{width:14px;height:14px;border-width:2px;display:inline-block;vertical-align:-2px}
.pick-list{max-height:320px;overflow-y:auto}
/* ---------- Aperçu imprimable ---------- */
.pdfv-print{margin-left:auto}
.pdfv-hint{background:#2E2E33;color:#C9C9D0;font-size:13px;text-align:center;padding:8px 16px}
/* ---------- Fichiers ---------- */
.head-acts{display:flex;gap:8px;flex-wrap:wrap}
.lib-filters{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px 12px;padding:0 16px 2px}
.lib-filters::-webkit-scrollbar{display:none}
.lib-filters select{flex:none;width:auto;height:38px;min-height:38px;padding:0 24px 0 12px;border-radius:999px;font-size:13px;font-weight:500;background-color:var(--surface);background-position:right 10px center}
@media (min-width:900px){.lib-filters{flex-wrap:wrap;margin:0 0 16px;padding:0}}
.lib-count{font-size:13px;color:var(--muted);margin:0 0 8px}
.lib-drop-hint{margin-top:12px}
.ftag{flex:none;width:38px;height:44px;border-radius:6px;display:grid;place-items:center;font-size:12px;font-weight:800;letter-spacing:.04em;background:var(--soft);color:var(--text);border:1px solid var(--line)}
.ftag-pdf{background:#FDECEC;color:#B42318;border-color:#F7D4D2}
.ftag-word{background:#EAF1FD;color:#1D4ED8;border-color:#D3E0FA}
.ftag-excel{background:#E9F7EF;color:#157347;border-color:#CDEBD8}
.ftag-powerpoint{background:#FDF1E7;color:#B54708;border-color:#F8DEC6}
.ftag-image{background:#F2EEFB;color:#5B3FB0;border-color:#E2DAF6}
.ftable-wrap{display:none}
.flist .row{gap:12px}
@media (min-width:900px){
  .ftable-wrap{display:block;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow-x:auto}
  .flist{display:none}
}
.ftable{width:100%;border-collapse:collapse;font-size:14px}
.ftable th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.ftable td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;color:var(--text)}
.ftable tr:last-child td{border-bottom:0}
.ftable tbody tr:hover{background:var(--hover)}
.ftable .num{text-align:right}
.ftable .faint{color:var(--faint)}
.ft-doc{display:flex;align-items:center;gap:12px;border:0;background:none;padding:0;text-align:left;min-width:260px;max-width:420px;color:inherit}
.ft-doc .row-title,.ft-doc .row-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.ft-act{width:44px}
.fhead{display:flex;align-items:center;gap:12px;margin:4px 0 12px}
.fh-title{font-size:20px;font-weight:700;color:var(--ink);letter-spacing:-.015em;line-height:1.25;overflow-wrap:anywhere}
.fh-acts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.fh-acts .btn{text-decoration:none}
.fgrid{display:grid;gap:16px}
@media (min-width:1000px){.fgrid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;align-items:start}.fgrid .sec-head:first-child{margin-top:0}}
.fpreview{border:1px solid var(--line);border-radius:12px;background:var(--soft);overflow:hidden;display:grid;place-items:center;min-height:180px}
.fpreview img{display:block;max-width:100%;max-height:520px;object-fit:contain}
.fpreview.pdf iframe{width:100%;height:560px;border:0;background:#fff}
.fpreview.none{padding:24px;gap:8px;text-align:center}
.dropzone{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 16px;border:1px solid var(--line-2);border-radius:12px;background:var(--surface);text-align:center;cursor:pointer;color:var(--ink)}
.dropzone:hover{background:var(--hover)}
.dropzone .ic{width:26px;height:26px;color:var(--muted)}
.dropzone .row-sub{max-width:320px}
.fcard{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.progress{height:8px;border-radius:999px;background:var(--soft);overflow:hidden}
.progress span{display:block;height:100%;background:var(--ink);transition:width .2s}
.grants{display:flex;flex-direction:column;gap:8px}
.grant-row{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.grant-row select{width:auto;min-height:38px;font-size:14px}
.grant-add{display:flex;gap:8px}
.grant-add select{flex:1;min-width:0}
.cat-row{display:flex;align-items:center;gap:4px;padding:8px 8px 8px 12px;border-bottom:1px solid var(--line)}
.cat-row:last-child{border-bottom:0}
.cat-row input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-weight:600;color:var(--ink);padding:4px 0}
.cat-row input:focus{outline:2px solid var(--ink);outline-offset:2px;border-radius:6px}
body.dragging .page{outline:2px solid var(--ink);outline-offset:-8px;border-radius:12px}
@media print{
  @page{size:A4;margin:0}
  html,body{background:#fff!important}
  .pdfv-top,.pdfv-hint,#toast-root,#sheet-root,#busy-root,.bnav,.side,.topbar{display:none!important}
  .pdfv,.pdfv-body{background:#fff!important;padding:0!important;margin:0!important;min-height:0!important;max-width:none!important}
  .paper-frame{height:auto!important;overflow:visible!important;box-shadow:none!important;background:none!important}
  .paper{transform:none!important;box-shadow:none!important;margin:0!important}
}


/* Inscription en étapes */
.su-progress{display:flex;gap:4px;margin:16px 0 12px}.su-progress span{flex:1;height:4px;border-radius:6px;background:var(--line)}.su-progress span.on{background:var(--ink)}
.su-step{margin:0;font-size:13px;font-weight:600;color:var(--muted)}
.fs{border:0;padding:0;margin:0;min-width:0}.fs legend{padding:0;margin-bottom:8px;font-weight:600;font-size:14px;color:var(--ink)}
.choices{display:grid;grid-template-columns:1fr;gap:8px}
.choices.cols2,.choices.multi{grid-template-columns:1fr 1fr}
.choices.cols3{grid-template-columns:repeat(3,1fr)}
@media(min-width:520px){.choices{grid-template-columns:1fr 1fr}.choices.cols3{grid-template-columns:repeat(3,1fr)}}
.field .choice,.choice{margin:0;font-weight:500;position:relative;display:flex;align-items:center;min-height:48px;padding:8px 12px 8px 40px;border:1px solid var(--line-2);border-radius:12px;background:var(--surface);font-size:14px;color:var(--ink);cursor:pointer;line-height:1.3}
.choice input{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;margin:0;accent-color:var(--ink)}
.choice:has(input:checked){border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.choice:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}
.has-err .choice{border-color:var(--red)}
.su-actions{display:flex;gap:8px;margin-top:4px}.su-actions .btn-secondary{flex:none}
.reg-dl{margin-bottom:16px}
/* ===== Assistant IA ===== */
.ai-fab{position:fixed;right:16px;bottom:calc(var(--nav-h) + 14px + env(safe-area-inset-bottom,0px));z-index:60;display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 16px 0 12px;border-radius:999px;border:0;background:var(--ink);color:var(--on-ink);font:600 14px var(--font);box-shadow:0 6px 20px rgba(0,0,0,.18)}
.ai-fab .ic{width:20px;height:20px}
body.no-nav .ai-fab{bottom:calc(16px + env(safe-area-inset-bottom,0px))}
body.in-conv .ai-fab{bottom:calc(var(--nav-h) + 86px + env(safe-area-inset-bottom,0px))}
@media(max-width:959px){.ai-fab span{display:none}.ai-fab{width:52px;height:52px;padding:0;justify-content:center}body.in-conv .ai-fab{display:none}}
@media(min-width:960px){.ai-fab{bottom:24px;right:24px}}
html.ai-lock{overflow:hidden}
@media(min-width:960px){html.ai-lock{overflow:auto}html.ai-lock .main{padding-right:64px}}
.ai-overlay{position:fixed;inset:0;background:rgba(0,0,0,.28);z-index:69}
@media(min-width:960px){.ai-overlay{display:none}}
.ai-panel{position:fixed;inset:0;z-index:70;background:var(--surface);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px)}
@media(min-width:960px){.ai-panel{left:auto;width:420px;border-left:1px solid var(--line);box-shadow:-8px 0 30px rgba(0,0,0,.08)}}
.ai-head{display:flex;align-items:center;gap:2px;padding:4px 4px 4px 12px;border-bottom:1px solid var(--line);min-height:56px}
.ai-title{flex:1;font-size:16px;font-weight:700;color:var(--ink);margin:0 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-logo{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--soft);color:var(--ink)}
.ai-logo.sm{width:32px;height:32px;border-radius:8px}.ai-logo.sm .ic{width:18px;height:18px}
.ai-body{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain}
.ai-empty{margin:auto 0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 4px}
.ai-empty .h2{margin:4px 0 0}
.ai-sugg{display:flex;flex-direction:column;gap:8px;margin-top:8px;width:100%}
.ai-sugg .chip{width:100%;text-align:left;min-height:44px;border-radius:12px;font-weight:500}
.ai-m{display:flex;flex-direction:column;gap:8px;max-width:100%}
.ai-m.me{align-items:flex-end}
.ai-m.me .ai-b{background:var(--ink);color:var(--on-ink);border-radius:12px 12px 6px 12px;padding:8px 12px;max-width:85%;white-space:normal;word-wrap:break-word}
.ai-m.bot .ai-b{color:var(--text);line-height:1.55;word-wrap:break-word}
.ai-b p{margin:0 0 8px}.ai-b p:last-child{margin:0}
.ai-b ul,.ai-b ol{margin:0 0 8px;padding-left:20px}.ai-b li{margin:2px 0}
.ai-b .md-h{font-weight:700;color:var(--ink);margin-top:4px}
.pref{display:inline-block;font-size:12px;font-weight:600;padding:1px 4px;border-radius:6px;background:var(--soft);color:var(--text)}
.pref.warn{background:var(--amber-bg);color:var(--amber)}
.ai-att{display:flex;gap:4px;align-items:center;font-size:12px;color:var(--muted)}.ai-att .ic{width:14px;height:14px}
.ai-m.notice{align-items:stretch}.ai-m.notice p{font-size:13px;color:var(--muted);background:var(--soft);border-radius:8px;padding:8px 12px;margin:0}
.ai-steps{list-style:none;margin:0;padding:8px 12px;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:4px}
.ai-steps li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text)}
.ai-steps .ic{width:16px;height:16px;flex:none}
.ai-steps .st-done{color:var(--green)}.ai-steps .st-wait{color:var(--amber)}.ai-steps .st-fail,.ai-steps .st-ref{color:var(--red)}
.ai-steps li.st-waiting{font-weight:600;color:var(--ink)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ai-thinking{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.ai-confirm{border:1px solid var(--line-2);border-radius:12px;padding:12px;background:var(--surface);display:flex;flex-direction:column;gap:8px}
.ai-confirm p{margin:0;color:var(--text);font-size:14px;line-height:1.5}
.ai-confirm-t{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--ink)!important}.ai-confirm-t .ic{width:18px;height:18px}
.ai-confirm-b{display:flex;gap:8px;margin-top:4px}.ai-confirm-b .btn{flex:1}
.ai-src{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.ai-src-t{font-size:12px;font-weight:600;color:var(--muted);width:100%}
.ai-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:4px 8px;border-radius:999px;border:1px solid var(--line);font-size:12px;color:var(--text);text-decoration:none;background:var(--surface)}
.ai-chip .ic{width:14px;height:14px;flex:none}
.ai-chip .tag{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.ai-chip.web .tag{color:var(--amber)}
.ai-composer{border-top:1px solid var(--line);padding:8px 8px calc(10px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.ai-row{display:flex;align-items:flex-end;gap:4px}
.ai-row textarea{flex:1;resize:none;min-height:44px;max-height:160px;border:1px solid var(--line-2);border-radius:12px;padding:12px 12px;font:15px/1.4 var(--font);color:var(--ink);background:var(--surface)}
.ai-row .send{background:var(--ink);color:var(--on-ink);border-radius:12px}
.ai-row .stop{background:var(--red-bg);color:var(--red);border-radius:12px}
.ai-row2{display:flex;justify-content:flex-end}
.ai-model{height:34px;border:1px solid var(--line);border-radius:8px;font:13px var(--font);background:var(--surface);color:var(--text);padding:0 8px}
.ai-chips{display:flex;flex-wrap:wrap;gap:4px}
.ai-ctx{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 2px 2px 8px;border-radius:999px;background:var(--soft);font-size:12px;color:var(--text);border:0;font-family:var(--font)}
.ai-ctx>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.ai-ctx .ic{width:14px;height:14px;flex:none}
.ai-ctx.add{padding:4px 12px;font-weight:600;color:var(--ink);border:1px solid var(--line-2);background:transparent}
.ai-ctx.sel{background:var(--ink);color:var(--on-ink)}.ai-ctx.sel .icon-btn{color:var(--on-ink)}
.icon-btn.xs{width:28px;height:28px;border-radius:999px}.icon-btn.xs .ic{width:14px;height:14px}
.ai-quota{margin:0;font-size:12px;color:var(--amber)}
.ai-sub{font-size:13px;font-weight:600;color:var(--muted);margin:0}
.ai-hist{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line)}
.ai-hist-b{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 4px;border:0;background:transparent;text-align:left;font-family:var(--font);color:var(--ink);min-width:0}
.ai-hist-b b{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.ai-hist-b small{color:var(--muted);font-size:12px}
.ai-hist-b.row{flex-direction:row;align-items:center;gap:8px;border-bottom:1px solid var(--line);width:100%}
.ai-pick{align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line)}
.ai-pick span{display:flex;flex-direction:column;gap:2px}.ai-pick small{color:var(--muted);font-size:12px;font-weight:400}
/* Notifications */
.bell{position:relative}.bell-dot{position:absolute;top:10px;right:11px;width:8px;height:8px;border-radius:50%;background:var(--red);border:2px solid var(--surface)}
.notif-list{display:flex;flex-direction:column}
.notif{display:flex;gap:12px;align-items:flex-start;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 2px;font-family:var(--font)}
.notif-ic{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--soft);color:var(--ink);flex:none}.notif-ic .ic{width:18px;height:18px}
.notif-t{display:flex;flex-direction:column;gap:2px;color:var(--text);font-size:13px}.notif-t b{color:var(--ink);font-weight:600;font-size:14px}.notif-t small{color:var(--muted);font-size:12px}
.notif.unread b::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ink);margin-left:4px;vertical-align:middle}
.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 8px}.sheet-head .h2{margin:0}
.sheet-list{display:flex;flex-direction:column}
.sheet-item{display:flex;gap:12px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 2px;font-family:var(--font);color:var(--ink)}
.sheet-item span{display:flex;flex-direction:column;gap:2px}.sheet-item small{color:var(--muted)}
/* Réglages de l’assistant */
.h3{font-size:14px;font-weight:700;color:var(--ink);margin:24px 0 8px}
.callout{display:flex;gap:8px;align-items:flex-start;padding:12px 12px;border-radius:12px;background:var(--soft);margin:12px 0;font-size:14px;color:var(--text)}.callout p{margin:0}
.callout.warn{background:var(--amber-bg);color:var(--amber)}.callout .ic{flex:none;width:18px;height:18px;margin-top:2px}
.checks{display:flex;flex-direction:column;gap:8px;margin:4px 0 8px}
.adv summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--muted);padding:4px 0}
.quota{margin:4px 0 8px}.quota-bar{height:8px;border-radius:99px;background:var(--soft);overflow:hidden}.quota-bar span{display:block;height:100%;background:var(--ink)}
.quota-bar span.mid{background:var(--amber)}.quota-bar span.hi{background:var(--red)}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.kv div{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:4px}.kv span{font-size:12px;color:var(--muted)}.kv b{font-size:16px;color:var(--ink)}
.kv-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.inline-form{display:flex;gap:8px;align-items:flex-start;margin-top:8px}.inline-form .field{flex:1;margin:0}.inline-form .btn{flex:none;margin-top:var(--lbl-h,27px)}
.ai-adm-row{display:flex;gap:8px;justify-content:space-between;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ai-adm-row>div:first-child{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 220px}
.ai-adm-row b{color:var(--ink);font-weight:600;font-size:14px}.ai-adm-row small{font-size:12px;color:var(--muted)}
.ai-adm-row .badge{align-self:flex-start;margin-top:2px}
.ai-adm-act{display:flex;gap:4px;flex-wrap:wrap}
.ai-adm-msgs{display:flex;flex-direction:column;gap:12px;padding-bottom:8px}
small.mono{font-family:ui-monospace,Menlo,monospace;font-size:12px!important;word-break:break-word}
@media print{.ai-fab,.ai-panel,.ai-overlay{display:none!important}}
.brand-logo{display:block;height:30px;width:auto}
.side .brand-logo{height:28px}
.auth .brand-logo{height:34px}
.brand-p{display:block;height:26px;width:auto}

/* ===================== CRM ===================== */
.badge.blue{background:var(--accent-soft);color:var(--accent-text)}
.crm-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.crm-actions{display:flex;gap:8px;flex-wrap:wrap}
.crm-tabs{margin:12px 0 16px !important;padding:2px 0 !important;justify-content:flex-start !important;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.crm-tabs::-webkit-scrollbar{display:none}
.crm-tabs .chip{white-space:nowrap;text-decoration:none}
.crm-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.crm-sel{height:40px;border:1px solid var(--line-2);border-radius:12px;background:var(--surface);color:var(--ink);font:500 14px var(--font);padding:0 8px;max-width:100%}
.crm-search{flex:1;min-width:200px}
.crm-bar .seg{display:inline-flex;flex-wrap:nowrap;max-width:100%;overflow-x:auto}
.crm-bar .seg button{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:0 12px;min-height:36px}
@media(max-width:759px){.crm-bar .seg button span{display:none}.crm-bar .seg button{padding:0 12px}}
.crm-loading{padding:24px 4px}
.crm-h2{margin:0 0 8px;display:flex;align-items:center;gap:8px}
.crm-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--card-shadow);margin-bottom:12px}
.crm-sec-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.crm-sec-h .crm-h2{margin:0}
.crm-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px;align-items:start}
@media(max-width:1023px){.crm-grid{grid-template-columns:minmax(0,1fr)}}
.crm-row{display:flex;align-items:center;gap:12px;padding:12px 4px;border:0;border-bottom:1px solid var(--line);background:transparent;width:100%;text-align:left;color:var(--ink);text-decoration:none;font:inherit}
.list .crm-row{padding:12px 12px}
.crm-row:last-child{border-bottom:0}
a.crm-row:hover,button.crm-row:hover{background:var(--hover)}
.crm-row-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.crm-row-t b{font-weight:600;overflow:hidden;text-overflow:ellipsis}
.crm-row-t small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-row-ic{width:34px;height:34px;border-radius:8px;background:var(--soft);display:grid;place-items:center;flex:none;color:var(--ink)}
.crm-row-ic.late{background:var(--red-bg);color:var(--red)}
.crm-row-ic .ic{width:17px;height:17px}
.crm-c{flex:none;width:120px;font-size:13px;color:var(--text)}
.crm-c.num{text-align:right;font-variant-numeric:tabular-nums}
.crm-c.wide{width:260px}
.crm-c-act{display:flex;gap:4px;flex:none;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.crm-th{font-size:12px;font-weight:600;color:var(--muted);text-transform:none;background:var(--soft)}
.crm-th:hover{background:var(--soft)!important}
@media(max-width:759px){.hide-m{display:none!important}.crm-c{width:auto}.crm-c.wide{display:none}.crm-th{display:none}}
.crm-next{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text)}
.crm-next .ic{width:14px;height:14px}
.crm-next.late{color:var(--red);font-weight:600}
.crm-next.none{color:var(--muted)}
.crm-more{margin-top:12px}
.crm-sugg-bar{display:flex;align-items:center;gap:8px;padding:12px 12px;border-radius:12px;background:var(--accent-soft);color:var(--ink);margin-bottom:12px;font-size:14px}
.crm-sugg-bar span{flex:1}.crm-sugg-bar .ic{color:var(--accent-text)}
/* Kanban */
.kb{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.kb-col{flex:0 0 272px;scroll-snap-align:start;background:var(--soft);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:8px;min-height:120px}
.kb-col.over{outline:2px solid var(--accent);outline-offset:-2px}
.kb-h{display:flex;align-items:baseline;gap:8px;padding:4px 4px}.kb-h b{font-size:14px}.kb-h small{margin-left:auto;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.kb-list{display:flex;flex-direction:column;gap:8px}
.kb-card{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:12px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink);box-shadow:var(--card-shadow);cursor:grab}
.kb-card.drag{opacity:.5}
.kb-card b{font-size:14px}.kb-card>span{font-size:13px;color:var(--text)}
.kb-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kb-meta b{font-variant-numeric:tabular-nums;font-size:13px}
.kb-empty{font-size:12px;color:var(--muted);padding:4px}
.avatar.xs{width:24px;height:24px;font-size:12px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);display:inline-grid;place-items:center;font-weight:700}
.crm-split{display:grid;grid-template-columns:320px minmax(0,1fr);gap:12px}
.crm-split.three{grid-template-columns:300px minmax(0,1fr) 280px}
@media(max-width:1199px){.crm-split.three{grid-template-columns:300px minmax(0,1fr)}.crm-split-cal{grid-column:1/-1}}
@media(max-width:899px){.crm-split,.crm-split.three{grid-template-columns:minmax(0,1fr)}}
.crm-split-list .crm-table{max-height:70vh;overflow:auto}
.crm-split-list .crm-c.wide{display:none}
/* Fiche */
.crm-acc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:4px 0 12px}
.crm-sub{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px 0 0}
.crm-quick{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.crm-quick .btn{min-height:40px}
.crm-sugg{border-color:var(--accent);background:linear-gradient(var(--accent-soft),var(--accent-soft)),var(--surface)}
.crm-sugg-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;flex-wrap:wrap}
.crm-sugg-item p{margin:2px 0 0}.crm-sugg-b{display:flex;gap:4px}
.crm-act{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}
.crm-act:last-child{border-bottom:0}
.crm-act.late b{color:var(--red)}
.crm-act-b{display:flex;gap:4px;align-items:center;flex:none;flex-wrap:wrap;justify-content:flex-end}
.crm-ctx{margin:4px 0 0;font-size:13px;color:var(--text)}
.crm-det summary{cursor:pointer;font-size:13px;color:var(--accent-text);margin-top:4px}.crm-det p{font-size:13px;background:var(--soft);padding:8px 12px;border-radius:8px;margin:4px 0 0}
.crm-tlink{display:block;font-size:12px;color:var(--accent-text);text-decoration:none;margin-bottom:2px}
.crm-tl{list-style:none;margin:0;padding:0}
.crm-tl li{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.crm-tl li:last-child{border-bottom:0}
.crm-tl li.cancel b{text-decoration:line-through;color:var(--muted)}
.crm-tl li>div{min-width:0;display:flex;flex-direction:column;gap:2px}.crm-tl small{color:var(--muted);font-size:12px}
.crm-tl-ic{width:28px;height:28px;border-radius:999px;background:var(--soft);display:grid;place-items:center;flex:none}.crm-tl-ic .ic{width:14px;height:14px}
.crm-comment{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.crm-comment textarea{border:1px solid var(--line-2);border-radius:12px;padding:8px;font:14px var(--font);background:var(--surface);color:var(--ink)}
.crm-comment .btn{align-self:flex-end}
.crm-comm{padding:8px 0;border-bottom:1px solid var(--line)}.crm-comm p{margin:0 0 4px}.crm-comm small{color:var(--muted)}
.crm-upload{cursor:pointer}
.crm-stepper{display:flex;gap:4px;list-style:none;padding:0;margin:0 0 16px;overflow-x:auto;scrollbar-width:none}
.crm-stepper li{flex:none}
.crm-stepper li>*{display:block;border:1px solid var(--line-2);background:var(--surface);color:var(--text);border-radius:999px;padding:8px 12px;font:500 13px var(--font);white-space:nowrap}
.crm-stepper button{cursor:pointer}.crm-stepper button:hover{border-color:var(--accent)}
.crm-stepper li.on>*{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.crm-stepper li.won>*{border-color:var(--green);color:var(--green)}.crm-stepper li.lost>*{color:var(--muted)}
/* Formulaires */
.crm-fs{border:1px solid var(--line);border-radius:12px;padding:12px}.crm-fs legend{padding:0 4px}
.crm-checks{max-height:200px;overflow:auto}
.crm-pl{display:flex;gap:4px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.crm-pl select,.crm-pl input{height:40px;border:1px solid var(--line-2);border-radius:8px;padding:0 8px;font:14px var(--font);background:var(--surface);color:var(--ink);min-width:0}
.crm-pl input[name=p_label],.crm-pl input[name=sname],.crm-auto-a input[name=atitle],.crm-auto-a input[name=amsg]{flex:1 1 180px}
.crm-pl select{flex:1 1 160px}
.w-s{width:72px;flex:none}.w-m{width:120px;flex:none}
.crm-qt{display:flex;justify-content:space-between;padding:12px 12px;border-radius:12px;background:var(--soft);font-size:14px}.crm-qt b{font-variant-numeric:tabular-nums}
.crm-ai{display:flex;gap:4px;align-items:center;flex-wrap:wrap;padding:8px;border-radius:12px;background:var(--soft)}
.crm-ai>span{display:inline-flex;gap:4px;align-items:center;font-weight:600;font-size:13px;color:var(--accent-text)}
.crm-ai input{flex:1 1 180px;height:36px;border:1px solid var(--line-2);border-radius:8px;padding:0 8px;font:14px var(--font);background:var(--surface);color:var(--ink)}
.choice.sm{min-height:40px;padding:8px 12px 8px 40px;font-size:14px}.choice.sm input{left:12px}
.crm-res{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.crm-auto-a{display:flex;gap:4px;flex-wrap:wrap;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px}
.crm-auto-a select,.crm-auto-a input{height:38px;border:1px solid var(--line-2);border-radius:8px;padding:0 8px;font:14px var(--font);background:var(--surface);color:var(--ink);min-width:0}
.crm-code{width:100%;border:1px solid var(--line-2);border-radius:12px;padding:8px;font:12.5px ui-monospace,Menlo,monospace;background:var(--soft);color:var(--ink)}
.crm-imp{max-height:300px;overflow:auto;margin:8px 0}
/* Calendrier */
.crm-nav{display:flex;align-items:center;gap:4px}.crm-cal-l{margin-left:4px;font-size:14px}
.cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.cal-week.one{grid-template-columns:minmax(0,1fr)}
@media(max-width:899px){.cal-week{grid-template-columns:minmax(0,1fr)}}
.cal-col{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px;min-height:120px;display:flex;flex-direction:column;gap:4px}
.cal-col.today{border-color:var(--accent)}
.cal-col h3{font-size:12px;margin:0 0 4px;color:var(--muted);font-weight:600}
.cal-it{display:flex;flex-direction:column;gap:1px;text-align:left;border:0;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:8px;padding:4px 8px;font:inherit;color:var(--ink);cursor:pointer;width:100%}
.cal-it span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.cal-it b{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-it small{font-size:12px;color:var(--text)}
.cal-it.k-tache{border-left-color:var(--muted);background:var(--soft)}.cal-it.k-relance{border-left-color:var(--amber);background:var(--amber-bg)}
.cal-it.late{border-left-color:var(--red);background:var(--red-bg)}.cal-it.done{opacity:.55}
.cal-month .cal-wd{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;font-size:12px;color:var(--muted);margin-bottom:4px;text-align:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-cell{background:var(--surface);border:1px solid var(--line);border-radius:12px;min-height:96px;padding:4px;display:flex;flex-direction:column;gap:4px;min-width:0}
.cal-cell.out{opacity:.45}.cal-cell.today{border-color:var(--accent)}
.cal-d{border:0;background:transparent;font:600 12px var(--font);color:var(--ink);text-align:left;cursor:pointer;padding:0}
.cal-cell .cal-it{padding:4px 4px}.cal-cell .cal-it span,.cal-cell .cal-it small{display:none}
@media(max-width:599px){.cal-cell{min-height:56px}.cal-cell .cal-it b{font-size:12px}}
/* Tableau de bord, objectifs, classement */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-bottom:16px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 16px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow)}
.kpi span{font-size:12px;color:var(--muted)}.kpi b{font-size:20px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink)}
.kpi.warn b{color:var(--red)}
.crm-tbl{width:100%;border-collapse:collapse;font-size:13px}
.crm-tbl th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:8px 4px;border-bottom:1px solid var(--line)}
.crm-tbl td{padding:8px 4px;border-bottom:1px solid var(--line);vertical-align:top}
.crm-tbl .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.crm-tbl.small td{padding:4px 4px;font-size:12px}.crm-tbl td.old{color:var(--muted);text-decoration:line-through}
.crm-tbl tr.me td{background:var(--accent-soft);font-weight:600}
.crm-card:has(.crm-tbl){overflow-x:auto}
.bar{height:6px;border-radius:99px;background:var(--soft);margin-top:4px;max-width:220px}.bar span{display:block;height:100%;border-radius:99px;background:var(--accent)}
.goals{display:grid;gap:8px;margin-bottom:20px}
.goal{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.goal.reached{border-color:var(--green);background:linear-gradient(var(--green-bg),var(--green-bg)),var(--surface)}
.goal-h{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}
.goal-bar{position:relative;height:10px;border-radius:99px;background:var(--soft)}
.goal-bar span{display:block;height:100%;border-radius:99px;background:var(--accent)}.goal.reached .goal-bar span{background:var(--green)}
.goal-bar i{position:absolute;top:-3px;width:2px;height:16px;background:var(--ink);opacity:.5}
.goal-n{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;margin-top:8px;font-size:13px}
.goal-n .ok{color:var(--green)}.goal-n .warn{color:var(--amber)}
.crm-late-n{display:flex;gap:4px;align-items:center;color:var(--red);font-weight:600;margin:0 0 8px}
@media(max-width:759px){
  .crm-act{flex-wrap:wrap}.crm-act .crm-row-t{flex:1 1 calc(100% - 50px)}
  .crm-act-b{width:100%;justify-content:flex-start;padding-left:48px}
  .crm-quick{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-16px;padding-right:16px;-webkit-overflow-scrolling:touch}
  .crm-quick::-webkit-scrollbar{display:none}.crm-quick .btn{flex:none}
  .crm-row .crm-c-act{flex-wrap:nowrap}
  .crm-head .crm-actions .btn-secondary{padding:0 12px}
}

/* ===================== Signature électronique ===================== */
.es-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;margin:0 0 16px;box-shadow:var(--card-shadow)}
.es-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.es-h .h2{margin:0;display:flex;gap:8px;align-items:center}
.es-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 16px;margin:0 0 12px}
.es-dl dt{font-size:12px;color:var(--muted)}.es-dl dd{margin:2px 0 0;font-weight:600;color:var(--ink);font-size:14px}.es-dl small{font-weight:400;color:var(--muted)}
#es-count{color:var(--accent-text)}
.es-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
.es-verify{cursor:pointer}
.es-det{margin-top:8px;border-top:1px solid var(--line);padding-top:8px}.es-det summary{cursor:pointer;font-weight:600;color:var(--ink);font-size:14px}
.es-det .crm-tbl{margin-top:8px}.es-det .crm-tl{margin-top:4px}
.es-hash{word-break:break-all;font-size:12px}
.es-link{display:flex;gap:8px;margin:12px 0}.es-link input{flex:1;min-width:0;height:44px;border:1px solid var(--line-2);border-radius:12px;padding:0 12px;font:13px ui-monospace,Menlo,monospace;background:var(--soft);color:var(--ink)}
.es-prev{display:flex;gap:24px;align-items:flex-end;flex-wrap:wrap;padding:12px;border:1px solid var(--line-2);border-radius:12px;background:#fff}
.es-prev .hint{display:block;margin-bottom:4px}.es-sig svg{width:240px;height:auto;display:block}.es-ini svg{width:60px;height:auto;display:block}
.es-pad{width:100%;height:auto;aspect-ratio:600/220;border:1px solid var(--line-2);border-radius:12px;background:#fff;touch-action:none;cursor:crosshair}
.callout.ok{background:var(--green-bg);color:var(--green)}
.oc-art{display:flex;flex-direction:column;gap:4px}.oc-art input,.oc-art textarea{border:1px solid var(--line-2);border-radius:8px;padding:8px 8px;font:14px var(--font);background:var(--surface);color:var(--ink)}.oc-art .btn{align-self:flex-end}

/* ===================== Assistant vocal ===================== */
.vc-fab{position:fixed;right:16px;bottom:calc(var(--nav-h) + 86px + env(safe-area-inset-bottom,0px));z-index:61;width:52px;height:52px;border-radius:999px;border:0;display:grid;place-items:center;cursor:pointer;color:var(--accent-text);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-2)}
.vc-fab .ic{width:24px;height:24px}
.vc-fab.on{background:var(--red);color:#fff;animation:vcPulse 1.4s ease-in-out infinite}
@keyframes vcPulse{0%,100%{box-shadow:0 0 0 0 rgba(215,0,21,.35)}50%{box-shadow:0 0 0 12px rgba(215,0,21,0)}}
@media (prefers-reduced-motion:reduce){.vc-fab.on{animation:none}}
@media(min-width:960px){.vc-fab{bottom:86px;right:24px}}
html.ai-lock .vc-fab{display:none}
.vc-panel{position:fixed;right:16px;left:16px;bottom:calc(var(--nav-h) + 148px + env(safe-area-inset-bottom,0px));z-index:61;max-height:55vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-2);padding:12px 16px}
@media(min-width:960px){.vc-panel{left:auto;width:380px;right:24px;bottom:150px}}
.vc-panel header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.vc-panel header b{color:var(--ink)}
.vc-st{flex:1;font-size:12px;color:var(--muted)}
.vc-dot{width:9px;height:9px;border-radius:99px;background:var(--faint)}.vc-dot.listening{background:var(--red)}.vc-dot.thinking{background:var(--amber)}.vc-dot.speaking{background:var(--accent)}
.vc-you{display:flex;flex-direction:column;gap:2px;margin:4px 0 8px;font-size:14px;color:var(--ink)}.vc-you>span:first-child{font-size:12px;color:var(--muted);font-weight:600}
.vc-interim{color:var(--muted)}
.vc-reply{font-size:14px;line-height:1.5;color:var(--ink);background:var(--surface);border-radius:12px;padding:8px 12px}
.vc-screen{margin-top:8px;padding:8px 12px;border-radius:12px;background:var(--accent-soft);color:var(--ink);font-size:14px}.vc-screen b{font-size:12px;color:var(--accent-text)}.vc-screen p{margin:4px 0 0;font-weight:600}
.vc-acts{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.vc-note{font-size:12px;color:var(--muted);margin:8px 0 0}
/* Logo : version claire en mode sombre */
.logo-d{display:none}

.p-disc{font-size:10.5px;color:#6E6E73;margin-top:2px}
/* Les documents restent des feuilles blanches imprimables, quel que soit le thème */
.paper{color-scheme:light}
@media print{body::before{display:none}}

/* =====================================================================
   SYSTÈME DE DESIGN — composants de référence (prioritaires sur les règles plus anciennes ci-dessus).
   Règles : couleur = état ou action ; cartes seulement pour une vraie séparation ; une action principale par page.
   ===================================================================== */
html,body{background:var(--bg);color:var(--text);font:400 var(--fs-md)/1.5 var(--font);letter-spacing:0;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 0}
body::before{content:none!important}
.h1{font-size:var(--fs-2xl);line-height:1.25;font-weight:650;letter-spacing:-.015em;color:var(--ink);margin:0}
.h2{font-size:var(--fs-lg);line-height:1.35;font-weight:600;color:var(--ink);margin:0}
.h3{font-size:var(--fs-md);font-weight:600;color:var(--ink);margin:0}
.muted{color:var(--muted)}.small,.hint{font-size:var(--fs-sm)}
.num,.kpi b,.crm-c.num,.n,td.n{font-variant-numeric:tabular-nums}
a,.link{color:var(--primary-text)}
.link{background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color var(--t-fast)}
.link:hover{text-decoration-color:currentColor}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--r-sm)}
::selection{background:var(--primary-soft)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- Boutons : principal, secondaire, discret, danger ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);height:var(--h-control);min-height:var(--h-control);padding:0 var(--s4);border-radius:var(--r-md);border:1px solid transparent;font:600 var(--fs-md) var(--font);letter-spacing:0;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast)}
.btn .ic{width:16px;height:16px}
.btn-primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);opacity:1}
.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-2);box-shadow:var(--shadow-1)}
.btn-secondary:hover{background:var(--hover)}
.btn-ghost{background:transparent;color:var(--text);border-color:transparent}
.btn-ghost:hover{background:var(--hover);color:var(--ink)}
.btn-danger{background:var(--surface);color:var(--red);border-color:var(--line-2);border-radius:var(--r-md)}
.btn-danger:hover{background:var(--red-bg)}
.btn-sm{height:30px;min-height:30px;padding:0 var(--s3);font-size:var(--fs-sm)}
.btn-block{width:100%}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.icon-btn{width:32px;height:32px;display:inline-grid;place-items:center;border-radius:var(--r-md);border:0;background:transparent;color:var(--muted);cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}
.icon-btn:hover{background:var(--hover);color:var(--ink)}.icon-btn .ic{width:18px;height:18px}
@media(max-width:959px){.btn{height:40px;min-height:40px}.btn-sm{height:34px;min-height:34px}.icon-btn{width:36px;height:36px}}

/* ---------- Champs ---------- */
.field{display:flex;flex-direction:column;gap:6px}
.field label,.fs legend{font-size:var(--fs-sm);font-weight:600;color:var(--ink)}
.field input,.field select,.field textarea,.search input,.crm-sel,.crm-pl input,.crm-pl select,.crm-ai input,.crm-auto-a input,.crm-auto-a select,.oc-art input,.oc-art textarea,.crm-comment textarea{
  height:var(--h-control);border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:400 var(--fs-md) var(--font);padding:0 var(--s3);box-shadow:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.field textarea,.oc-art textarea,.crm-comment textarea{height:auto;min-height:88px;padding:var(--s2) var(--s3);line-height:1.5}
.field input:focus,.field select:focus,.field textarea:focus,.search input:focus,.crm-sel:focus,.crm-pl input:focus,.crm-pl select:focus,.oc-art input:focus,.oc-art textarea:focus,.crm-comment textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
.field input[aria-invalid="true"],.field select[aria-invalid="true"]{border-color:var(--red)}
.err{color:var(--red);font-size:var(--fs-sm)}
@media(max-width:959px){.field input,.field select,.search input,.crm-sel{height:44px;font-size:16px}}
.search{position:relative;display:flex;align-items:center}.search .ic{position:absolute;left:10px;width:16px;height:16px;color:var(--faint);pointer-events:none}
.search input{width:100%;padding-left:34px}
.fs,.crm-fs{border:0;border-top:1px solid var(--line);border-radius:0;padding:var(--s4) 0 0;margin:var(--s2) 0 0}
.fs legend,.crm-fs legend{padding:0 var(--s2) 0 0;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}

/* ---------- Filtres, onglets, segments, puces ---------- */
.chips{display:flex;gap:var(--s2);flex-wrap:wrap;margin:0 0 var(--s4)}
.chip{height:30px;padding:0 var(--s3);border-radius:var(--r-md);border:1px solid var(--line-2);background:var(--surface);color:var(--text);font:500 var(--fs-sm) var(--font);display:inline-flex;align-items:center;gap:6px;cursor:pointer;text-decoration:none}
.chip:hover{background:var(--hover)}
.chip[aria-pressed="true"]{background:var(--primary-soft);border-color:transparent;color:var(--primary-text)}
.seg{display:inline-flex;gap:2px;padding:2px;border-radius:var(--r-md);background:var(--soft);border:0}
.seg button{height:30px;padding:0 var(--s3);border-radius:6px;border:0;background:transparent;color:var(--text);font:500 var(--fs-sm) var(--font);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.seg button.is-on,.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}
.tabs{display:flex;gap:var(--s5);border-bottom:1px solid var(--line);margin:0 0 var(--s5);overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{position:relative;padding:var(--s2) 0 var(--s3);border:0;background:none;color:var(--muted);font:500 var(--fs-md) var(--font);cursor:pointer;white-space:nowrap;text-decoration:none}
.tab:hover{color:var(--ink)}
.tab[aria-selected="true"]{color:var(--ink)}
.tab[aria-selected="true"]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--primary);border-radius:2px}
.tab .tab-n{margin-left:6px;color:var(--faint);font-weight:500}

/* ---------- Badges d’état (une couleur = un sens) ---------- */
.badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 var(--s2);border-radius:var(--r-sm);font:500 var(--fs-xs) var(--font);background:var(--soft);color:var(--text);white-space:nowrap}
.badge.green{background:var(--green-bg);color:var(--green)}.badge.amber{background:var(--amber-bg);color:var(--amber)}
.badge.red{background:var(--red-bg);color:var(--red)}.badge.blue{background:var(--info-bg);color:var(--info)}.badge.ink{background:var(--ink);color:var(--on-ink)}

/* ---------- Listes et tableaux ---------- */
.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:none}
.row,.crm-row{min-height:var(--h-row);padding:var(--s2) var(--s4);gap:var(--s3);border-bottom:1px solid var(--line);background:transparent;transition:background var(--t-fast)}
.list .row:last-child,.list .crm-row:last-child{border-bottom:0}
.row:hover,a.crm-row:hover,button.crm-row:hover{background:var(--hover)}
.row-title,.crm-row-t b{font-weight:500;color:var(--ink);font-size:var(--fs-md)}
.row-sub,.row-meta,.crm-row-t small{font-size:var(--fs-sm);color:var(--muted)}
.row-ic,.crm-row-ic{width:32px;height:32px;border-radius:var(--r-md);background:var(--soft);color:var(--text)}
.crm-th,.tbl th,.crm-tbl th{font:600 var(--fs-xs) var(--font);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.crm-th{background:var(--surface-2);min-height:36px}
.tbl,.crm-tbl{width:100%;border-collapse:collapse;font-size:var(--fs-md)}
.crm-tbl th,.tbl th{text-align:left;padding:var(--s2) var(--s3);border-bottom:1px solid var(--line);background:var(--surface-2)}
.crm-tbl td,.tbl td{padding:var(--s2) var(--s3);border-bottom:1px solid var(--line);height:var(--h-row);vertical-align:middle}
.tbl tr:hover td{background:var(--hover)}
.tbl-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:auto}
.tbl-wrap .tbl tr:last-child td{border-bottom:0}
.tbl a.tbl-main{color:var(--ink);font-weight:500;text-decoration:none}.tbl a.tbl-main:hover{color:var(--primary-text)}
.tbl .tbl-sub{display:block;font-size:var(--fs-sm);color:var(--muted)}
.tbl .tbl-act{width:1%;white-space:nowrap;text-align:right}
.tbl-act .icon-btn{opacity:.55}.tbl tr:hover .tbl-act .icon-btn,.tbl-act .icon-btn:focus-visible{opacity:1}

/* ---------- Sections (au lieu des cartes) ---------- */
.crm-card,.es-card,.set-sec,.section{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;padding:var(--s5) 0;margin:0}
.crm-col>.crm-card:first-child,.section:first-child{border-top:0;padding-top:0}
.crm-h2,.section-t{font-size:var(--fs-md);font-weight:600;color:var(--ink);margin:0 0 var(--s3)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:none}
.dl{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:var(--s2) var(--s5);margin:0}
.dl>div{display:contents}.dl dt{color:var(--muted);font-size:var(--fs-sm)}.dl dd{margin:0;color:var(--ink);font-size:var(--fs-md);text-align:left;font-weight:400}

/* ---------- En-tête de page unifié ---------- */
.page-head,.crm-head,.doc-head,.crm-acc-head,.dash-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;margin:0 0 var(--s6)}
.page-head .muted,.crm-sub,.doc-head .muted{margin-top:var(--s1);font-size:var(--fs-sm)}
.crm-actions,.head-actions{display:flex;flex-direction:row;gap:var(--s2);flex-wrap:wrap;align-items:center}
.back{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:var(--fs-sm);text-decoration:none;margin:0 0 var(--s3)}
.back:hover{color:var(--ink)}.back .ic{width:14px;height:14px}

/* ---------- Indicateurs (une bande, pas des cartes) ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;margin:0 0 var(--s6)}
.kpi{background:transparent;border:0;border-right:1px solid var(--line);border-radius:0;padding:var(--s4) var(--s5);box-shadow:none;gap:var(--s1)}
.kpi:last-child{border-right:0}
.kpi span{font-size:var(--fs-sm);color:var(--muted)}.kpi b{font-size:var(--fs-xl);font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.kpi small{font-size:var(--fs-xs);color:var(--muted)}
.kpi.warn b{color:var(--red)}

/* ---------- Fenêtres, menus, notifications ---------- */
.overlay{background:rgba(9,9,11,.42);-webkit-backdrop-filter:none;backdrop-filter:none}
.sheet{background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:var(--shadow-2);border:1px solid var(--line)}
@media(min-width:640px){.sheet{border-radius:var(--r-lg)}}
.sheet-head{padding-bottom:var(--s3);margin-bottom:var(--s4);border-bottom:1px solid var(--line)}
.toast{border-radius:var(--r-md);background:var(--ink);color:var(--on-ink);box-shadow:var(--shadow-2);padding:var(--s3) var(--s4);font-size:var(--fs-md)}
.callout{border-radius:var(--r-md);padding:var(--s3) var(--s4);font-size:var(--fs-sm)}
.empty{border:1px solid var(--line-2);border-radius:var(--r-lg);background:transparent;padding:var(--s10) var(--s6);text-align:center}
.empty-t{font-size:var(--fs-md);font-weight:600;color:var(--ink)}
.avatar,.avatar.sm{background:var(--soft);color:var(--text);font-weight:600}

/* ---------- Structure : barre latérale plate, en-tête, contenu ---------- */
.shell{background:var(--bg)}
.side{background:var(--surface);border:0;border-right:1px solid var(--line);border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.side::before,.side::after,.bnav::before,.bnav::after,.ai-fab::before,.ai-fab::after,.ai-panel::before,.ai-panel::after{content:none!important}
@media(min-width:960px){
  .side{position:sticky;top:0;height:100vh;margin:0;width:var(--side-w);padding:var(--s5) var(--s3) var(--s3);display:flex;flex-direction:column}
  .main{padding-bottom:var(--s12)}
  .page{max-width:1320px;padding:var(--s6) var(--s8) var(--s12)}
}
.side .brand-logo{height:26px;width:auto;margin:0 var(--s2) var(--s5)}
.side-co{padding:0 var(--s2) var(--s4);border-bottom:1px solid var(--line);margin-bottom:var(--s3)}
.side-co b{font-size:var(--fs-md);color:var(--ink)}.side-co span{font-size:var(--fs-xs);color:var(--muted)}
.side-nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto}
.side-group{font:600 var(--fs-xs) var(--font);color:var(--faint);text-transform:uppercase;letter-spacing:.06em;padding:var(--s4) var(--s2) var(--s1)}
.side-link{height:34px;min-height:34px;padding:0 var(--s2);gap:10px;border-radius:var(--r-md);color:var(--text);font:500 var(--fs-md) var(--font);background:transparent}
.side-link .ic{width:18px;height:18px;color:var(--muted)}
.side-link:hover{background:var(--hover);color:var(--ink)}
.side-link.is-on{background:var(--primary-soft);color:var(--primary-text);font-weight:600}
.side-link.is-on .ic{color:var(--primary-text)}
.side-user{margin-top:auto;border-top:1px solid var(--line);padding-top:var(--s3)}
.topbar{background:var(--surface);border-bottom:1px solid var(--line);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
@media(min-width:960px){.topbar{background:transparent;border-bottom:1px solid var(--line);height:56px;padding:0 var(--s8)}}
.top-search{flex:1;max-width:420px;position:relative}
.top-search input{height:34px;background:var(--surface)}
.top-res{position:absolute;top:40px;left:0;right:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);z-index:40;padding:var(--s1);max-height:360px;overflow:auto}
.top-res a{display:flex;justify-content:space-between;gap:var(--s3);padding:var(--s2) var(--s3);border-radius:6px;color:var(--ink);text-decoration:none;font-size:var(--fs-md)}
.top-res a:hover,.top-res a:focus-visible{background:var(--hover)}.top-res small{color:var(--muted)}
.top-res p{margin:0;padding:var(--s3);color:var(--muted);font-size:var(--fs-sm)}
/* Mobile : barre d’onglets en bas, plate */
.bnav{left:0;right:0;bottom:0;border-radius:0;padding:var(--s1) var(--s1) calc(var(--s1) + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.bn{border-radius:var(--r-md)}.bn.is-on{color:var(--primary-text);background:transparent}
.bn-plus{border-radius:var(--r-md);background:var(--primary);color:var(--on-primary)}
@media(max-width:959px){.main{padding-bottom:calc(var(--nav-h) + var(--s6) + env(safe-area-inset-bottom,0px))}.page{padding:var(--s4) var(--s4) var(--s8)}.composer{bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));background:var(--bg)}}
/* Un seul bouton flottant : l’assistant (le micro est dans son panneau) */
.ai-fab{background:var(--ink);color:var(--on-ink);border-radius:var(--r-full);box-shadow:var(--shadow-2);-webkit-backdrop-filter:none;backdrop-filter:none}
.ai-fab .ic{color:inherit}
@media(max-width:959px){.ai-fab{bottom:calc(var(--nav-h) + var(--s3) + env(safe-area-inset-bottom,0px));height:44px;width:44px;padding:0;justify-content:center}.ai-fab span:not(.ic){display:none}}
@media(min-width:960px){.ai-fab{bottom:var(--s6);right:var(--s6)}}
.ai-panel{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;border-left:1px solid var(--line);box-shadow:var(--shadow-2)}
@media(min-width:960px){.ai-panel{top:0;right:0;bottom:0;border-radius:0;width:420px}html.ai-lock .main{padding-right:420px}}
.vc-fab{display:none!important}
.vc-panel{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2)}
@media(min-width:960px){.vc-panel{right:var(--s6);bottom:84px}}
@media(max-width:959px){.vc-panel{bottom:calc(var(--nav-h) + 72px + env(safe-area-inset-bottom,0px))}}
/* CRM : la navigation est dans la barre latérale (ordinateur) ; onglets conservés sur mobile */
@media(min-width:960px){.crm-tabs{display:none}}
.topbar{display:flex;align-items:center;gap:var(--s3)}
@media(max-width:959px){.top-search,.top-create{display:none}}
.section-h{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s3)}.section-h .section-t{margin:0}
.loading-state{display:flex;align-items:center;gap:var(--s2);color:var(--muted);padding:var(--s8) 0;font-size:var(--fs-sm)}
.icon-btn.vc-on{background:var(--red);color:#fff}
.vc-panel .vc-big{display:none}
/* Tableau de bord : indicateurs, puis deux colonnes (à traiter / aujourd’hui), sans cartes */
.dash-cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--s8);align-items:start}
.dash-cols>div>.section:first-child{border-top:0;padding-top:0}
@media(max-width:1023px){.dash-cols{grid-template-columns:minmax(0,1fr);gap:0}.dash-cols>div+div>.section:first-child{border-top:1px solid var(--line);padding-top:var(--s5)}}
.row-ic.late{background:var(--red-bg);color:var(--red)}
.side-nav{flex:1;min-height:0}
.side .side-user{flex:none}
/* Menu déroulant */
.menu-wrap{position:relative;display:inline-flex}
.menu{position:absolute;top:calc(100% + 4px);right:0;min-width:220px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);padding:var(--s1);z-index:30;display:flex;flex-direction:column}
.menu[hidden]{display:none}
.menu button{display:flex;align-items:center;gap:var(--s2);height:34px;padding:0 var(--s3);border:0;border-radius:6px;background:transparent;color:var(--ink);font:400 var(--fs-md) var(--font);text-align:left;cursor:pointer}
.menu button:hover,.menu button:focus-visible{background:var(--hover);outline:none}.menu .ic{width:16px;height:16px;color:var(--muted)}
/* Fiche : contenu des onglets en sections ; responsive tableaux */
.crm-tabpanel{max-width:880px}
.crm-tabpanel .crm-card:first-child{border-top:0;padding-top:0}

.crm-quick{margin:-8px 0 var(--s5)}
/* Colonnes de tableau masquées sur petits écrans */
@media(max-width:759px){.tbl .col-md{display:none}}
@media(max-width:1023px){.tbl .col-lg{display:none}}
.tbl th.n,.tbl td.n{text-align:right;white-space:nowrap}
.crm-tbl-accounts td:first-child{min-width:220px}

.side-group{padding:var(--s3) var(--s2) 2px}
.side-link{height:32px;min-height:32px}
.side .brand-logo{margin-bottom:var(--s4)}
.side-co{padding-bottom:var(--s3)}
@media(max-width:759px){.kpis{grid-template-columns:1fr 1fr}.kpi{border-right:0;border-bottom:1px solid var(--line);padding:var(--s3) var(--s4)}.kpi:nth-child(odd){border-right:1px solid var(--line)}.kpi:nth-last-child(-n+2){border-bottom:0}.kpi b{font-size:var(--fs-lg)}}
/* Tableaux cliquables (ligne entière) */
.tbl-click{cursor:pointer}
.tbl-btn{background:none;border:0;padding:0;font:inherit;font-weight:500;color:var(--ink);cursor:pointer;text-align:left}
.tbl-btn:hover{color:var(--primary-text)}
.col-md-only,.tbl .col-md-only{display:none}
@media(max-width:759px){.col-md-only,.tbl .col-md-only{display:block}}
/* Documents, mobile : montant au-dessus du statut, aligné à droite */
.tbl-docs .doc-amt{color:var(--ink);text-align:right;margin-bottom:2px;white-space:nowrap}
@media(max-width:759px){.tbl-docs .doc-st{text-align:right}}
.filter-search{margin:0 0 var(--s4)}
/* Formulaires en sections ; actions toujours visibles en bas des fenêtres longues */
.sheet .crm-fs:first-of-type{border-top:0;padding-top:0;margin-top:0}
.sheet .crm-fs{display:flex;flex-direction:column;gap:var(--s3)}
.sticky-actions{position:sticky;bottom:calc(-1 * var(--s4));background:var(--surface);padding:var(--s3) 0;margin-top:var(--s2);border-top:1px solid var(--line);display:flex;gap:var(--s2)}
/* Pendant la création d’un document, l’écran est dédié : pas de bouton flottant */
body:has(.wiz) .ai-fab,body:has(.wiz) .vc-panel{display:none}
.wiz-top{border-bottom:1px solid var(--line);background:var(--surface)}
.set-sec .crm-fs,.page form>.crm-fs{display:flex;flex-direction:column;gap:var(--s3);max-width:720px}
.form-actions{display:flex;gap:var(--s2);padding-top:var(--s4);border-top:1px solid var(--line);margin-top:var(--s2)}
.set-sec>form{max-width:720px}
/* Menu « Plus » (mobile) groupé comme la barre latérale */
.sheet-group{margin:var(--s4) 0 var(--s2);font:600 var(--fs-xs) var(--font);color:var(--faint);text-transform:uppercase;letter-spacing:.06em}
.sheet-group:empty{margin:var(--s3) 0 0}
/* Connexion et inscription : colonne centrée, sobre */
.auth{align-items:center;padding:var(--s10) var(--s5)}
@media(min-width:760px){.auth-col{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s8);box-shadow:var(--shadow-1)}}
/* Lignes de devis et de facture : séparées par un trait, plus de boîtes lourdes */
.line{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:var(--s4) 0;margin:0}
.line:first-of-type{border-top:0;padding-top:0}
/* Simplification CRM : aide courte, coordonnées visibles, options repliées */
.page-help{margin:-12px 0 var(--s5);color:var(--muted);font-size:var(--fs-sm)}
.crm-card .page-help{margin:0 0 var(--s3)}
.crm-coords{margin:var(--s2) 0 0;color:var(--text);font-size:var(--fs-md)}
.dot-sep{margin:0 var(--s2);color:var(--faint)}
details.more-opts{border-top:1px solid var(--line);padding-top:var(--s3)}
details.more-opts>summary{cursor:pointer;color:var(--primary-text);font-weight:500;font-size:var(--fs-md);list-style:none}
details.more-opts>summary::before{content:"+ "}details.more-opts[open]>summary::before{content:"− "}
details.more-opts>.stack{margin-top:var(--s3)}
.menu-t{margin:var(--s2) var(--s3) var(--s1);font:600 var(--fs-xs) var(--font);color:var(--faint);text-transform:uppercase;letter-spacing:.05em}
.menu .menu-a{display:flex;align-items:center;gap:var(--s2);height:34px;padding:0 var(--s3);border-radius:6px;color:var(--ink);text-decoration:none;font-size:var(--fs-md)}
.menu .menu-a:hover{background:var(--hover)}
a.kpi{text-decoration:none;color:inherit;transition:background var(--t-fast)}a.kpi:hover{background:var(--hover)}
.nowrap{white-space:nowrap}
.col-md-inline{display:inline}@media(max-width:759px){.col-md-inline{display:none}}
@media(max-width:959px){html,body{font-size:15px}.crm-coords{font-size:15px}}
/* La navigation du CRM est dans la barre latérale (ordinateur) et la barre du bas + « Plus » (mobile) : plus d’onglets en double. */
.crm-tabs{display:none!important}
/* ===================== Mes entreprises ===================== */
/* Hall d’entrée : choix de l’entreprise (page pleine, sans barre latérale). Surfaces pleines, une ligne par entreprise. */
.hall{min-height:100vh;background:var(--bg);display:flex;flex-direction:column}
.hall-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s4) var(--s8)}
.hall-top .brand-logo{height:26px;width:auto}
.hall-top-r{display:flex;gap:var(--s2);align-items:center}
.hall-main{width:100%;max-width:560px;margin:0 auto;padding:var(--s12) var(--s5) var(--s16)}
.hall-title{font-size:var(--fs-2xl);margin:0}
.hall-sub{margin:var(--s2) 0 var(--s6);color:var(--muted);font-size:var(--fs-md)}
.hall-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.hall-list li+li{border-top:1px solid var(--line)}
.hall-row{display:flex;align-items:center;gap:var(--s3);width:100%;min-height:68px;padding:var(--s3) var(--s4);border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background var(--t-fast)}
.hall-row:hover{background:var(--hover)}
.hall-row:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:0}
.hall-row.is-active{box-shadow:inset 3px 0 0 var(--primary)}
.hall-row[disabled]{cursor:default;opacity:.6}.hall-row.is-busy{opacity:1}
.hall-logo{width:40px;height:40px;border-radius:var(--r-md);object-fit:contain;flex:none;background:var(--surface-2);border:1px solid var(--line)}
.hall-mono{display:grid;place-items:center;font:600 var(--fs-md) var(--font);color:var(--primary-text);background:var(--primary-soft);border:0}
.hall-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.hall-t b{font-weight:600;font-size:var(--fs-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hall-t small{color:var(--muted);font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hall-end{display:flex;align-items:center;gap:var(--s2);flex:none}
.hall-end .chev{width:18px;height:18px;color:var(--faint)}
.hall-skel{cursor:default}.hall-skel .hall-logo{background:var(--soft);border:0}
.hall-skel-t{flex:1;display:flex;flex-direction:column;gap:8px}.hall-skel-t span{display:block;height:12px;border-radius:6px;background:var(--soft)}.hall-skel-t span:first-child{width:45%}.hall-skel-t span:last-child{width:30%}
.hall-add{display:flex;align-items:center;gap:var(--s3);width:100%;margin-top:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--line-2);border-radius:var(--r-lg);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background var(--t-fast)}
.hall-add:hover{background:var(--hover)}.hall-add[disabled]{opacity:.6;cursor:default}.hall-add>.ic{width:18px;height:18px;color:var(--primary-text);flex:none}
.hall-add span{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.hall-add b{font-weight:600;font-size:var(--fs-md)}.hall-add small{color:var(--muted);font-size:var(--fs-sm)}.hall-add .chev{width:18px;height:18px;color:var(--faint)}
@media(max-width:759px){.hall-top{padding:var(--s3) var(--s4)}.hall-main{padding:var(--s6) var(--s4) var(--s12)}.hall-title{font-size:var(--fs-xl)}.hall-top .co-long{display:none}.hall-row{min-height:64px}}
/* Sélecteur d’entreprise (barre latérale, en-tête mobile) */
.co-switch{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:var(--s2);margin:0 calc(-1 * var(--s2));border:0;border-radius:var(--r-md);background:transparent;cursor:pointer;text-align:left;font:inherit;color:inherit}
.co-switch:hover{background:var(--hover)}.co-switch>span{display:flex;flex-direction:column;min-width:0}.co-switch b{font-size:var(--fs-md);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.co-switch>span>span{font-size:var(--fs-xs);color:var(--muted)}
.co-switch .ic{width:16px;height:16px;color:var(--muted);flex:none}
.side-co.menu-wrap{display:block;position:relative}
.co-menu{left:0;right:auto;top:calc(100% + 4px);min-width:240px}
.co-menu .co-mi{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu .ic-sp{width:16px;flex:none}
.menu-sep{height:1px;background:var(--line);margin:var(--s1) 0}
.co-btn{display:inline-flex;align-items:center;gap:4px;border:0;background:none;font:inherit;color:inherit;padding:0;cursor:pointer;min-width:0}
.co-btn .ic{width:14px;height:14px;color:var(--muted);flex:none}

/* Fournisseurs */
.sup-doc .badge{flex:none}
.menu .menu-danger{color:var(--red)}.menu .menu-danger .ic{color:var(--red)}
.pre{white-space:pre-wrap;margin:0;color:var(--text)}
@media(max-width:759px){.sup-doc{flex-wrap:wrap}.sup-doc .row-main{flex:1 1 calc(100% - 140px);min-width:0}.sup-doc .badge{order:5;margin-left:44px}}

/* Site Tracker : vue d’ensemble, carte des visiteurs (portage Bklit, surfaces pleines), installation */
.site-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;margin:0 0 var(--s4)}
.site-toolbar-r{display:flex;align-items:center;gap:var(--s3)}
.site-kpis{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.site-kpis .kpi b{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.site-live{width:8px;height:8px;border-radius:50%;background:var(--faint);display:inline-block}
.site-live.on{background:var(--green)}
.site-card{margin:0 0 var(--s4)}
.site-card .card-h{padding:var(--s4) var(--s5) 0;align-items:flex-start}
.sm-title{font-size:var(--fs-sm);font-weight:600;color:var(--muted)}
.site-chart{padding:var(--s2) var(--s4) var(--s3)}
.site-chart svg{display:block;overflow:visible}
.sc-grid{stroke:var(--line);stroke-width:1}
.sc-y,.sc-x{font:500 11px var(--font);fill:var(--muted)}
.sc-bar{fill:var(--primary);fill-opacity:.85}
.sc-bar:hover{fill-opacity:1}
/* StatCard : titre, chiffre animé, libellé (Total ou pays survolé), tendance ; la carte en dessous */
.sm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);padding:var(--s4) var(--s5) var(--s2)}
.sm-stat{display:flex;flex-direction:column;gap:2px;margin-top:2px}
.sm-value{font-size:var(--fs-3xl);font-weight:600;line-height:1;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.sm-value.is-none{color:var(--muted)}
.sm-label{font-size:var(--fs-xs);color:var(--muted)}
.tb{display:inline-flex;align-items:center;gap:2px;height:22px;padding:0 var(--s2);border-radius:var(--r-sm);font:600 var(--fs-xs) var(--font);white-space:nowrap;font-variant-numeric:tabular-nums}
.tb .ic{width:12px;height:12px}
.tb-up{background:var(--green-bg);color:var(--green)}
.tb-down{background:var(--red-bg);color:var(--red)}
.tb-flat,.tb-none{background:var(--soft);color:var(--muted)}
/* ChoroplethChart : conteneur mesuré, hauteur fixe (420 px), bord à bord dans la carte */
.sm-chart{position:relative;width:100%;overflow:hidden;background:var(--surface)}
.sm-chart svg{display:block;cursor:default}
.sm-chart .sm-base{opacity:0;transition:opacity .8s ease-out}
.sm-chart.is-in .sm-base{opacity:.85}
.sm-chart.is-in.is-hover .sm-base{opacity:.4;transition:opacity .18s ease-out}
.sm-f{stroke:var(--surface);stroke-width:.5;cursor:pointer}
.sm-hl{pointer-events:none}
.sm-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:var(--s2);color:var(--muted);font-size:var(--fs-sm)}
/* ChoroplethTooltip : compacte, surface pleine, sans flou */
.sm-tip{position:absolute;z-index:3;pointer-events:none;min-width:140px;max-width:240px;padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-2);font-size:var(--fs-sm);color:var(--text)}
.sm-tip-t{font-weight:600;color:var(--ink);margin-bottom:4px}
.sm-tip-r{display:flex;align-items:center;gap:6px}
.sm-tip-r b{margin-left:auto;color:var(--ink);font-variant-numeric:tabular-nums}
.sm-tip-none{color:var(--muted)}
.sm-tip-dot{width:8px;height:8px;border-radius:2px;background:var(--primary);flex:none}
.sm-tip-dot.live{background:var(--green);border-radius:50%}
/* Installation */
.site-status .badge{flex:none}
.site-code{display:flex;align-items:flex-start;gap:var(--s2);margin:0 0 var(--s3)}
.site-code pre{flex:1;min-width:0;margin:0;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-sm);white-space:pre-wrap;word-break:break-all;color:var(--ink)}
.site-install-seg{margin:var(--s3) 0}
.site-steps{margin:0;padding-left:20px;color:var(--text);font-size:var(--fs-sm);line-height:1.6}
.site-steps code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--soft);padding:1px 4px;border-radius:4px}
.site-danger{color:var(--red)}
.site-danger-btn{background:var(--red);border-color:var(--red)}
.site-events .row{align-items:flex-start}
.site-events .badge{flex:none;margin-top:2px}
@media(max-width:759px){.site-toolbar{align-items:flex-start}.site-code{flex-direction:column}.site-code .btn{align-self:flex-end}.sm-head{padding:var(--s3) var(--s4) var(--s2)}.sm-value{font-size:var(--fs-2xl)}}
/* Site Tracker : ventes */
.site-lbl{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;margin:var(--s4) 0 var(--s2)}
.site-code.site-doc pre{white-space:pre;overflow-x:auto;word-break:normal;font-size:var(--fs-xs)}
.site-sales-notice{margin:0 0 var(--s4)}
.site-orders .row-end .row-title{font-variant-numeric:tabular-nums}
.tbl.site-top td.num,.tbl.site-top th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.site-toolbar-r .btn{margin-left:var(--s1)}

/* Messagerie : bouton en haut à droite et panneau latéral (plus d’onglet dans la barre latérale) */
.msg-btn{position:relative}
.msg-btn.is-on{background:var(--soft);color:var(--ink)}
.msg-count{position:absolute;top:4px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--primary);color:var(--on-primary);font-size:11px;font-weight:700;display:inline-grid;place-items:center;border:2px solid var(--surface)}
html.msg-lock{overflow:hidden}
.msg-overlay{position:fixed;inset:0;background:rgba(0,0,0,.28);z-index:69}
.msg-drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);z-index:70;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-2);padding-top:env(safe-area-inset-top,0px)}
.msg-head{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s2) var(--s2) var(--s4);min-height:56px;border-bottom:1px solid var(--line)}
.msg-head .row-main{flex:1;min-width:0}
.msg-title{flex:1;min-width:0;font-size:var(--fs-lg);font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.msg-head .row-main .msg-title{flex:none;font-size:var(--fs-md)}
.msg-body{flex:1;overflow:auto;padding:var(--s3) var(--s4);overscroll-behavior:contain}
.msg-body .msg-acts{display:flex;flex-wrap:wrap;gap:var(--s2);margin:0 0 var(--s3)}
.msg-body .msgs{padding:var(--s2) 0 var(--s3);min-height:100%}
.msg-drawer .composer{position:static;bottom:auto;padding:var(--s2) var(--s3) calc(var(--s2) + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line);z-index:1}
.msg-drawer .conv-row{padding-left:var(--s2)}
@media(max-width:759px){.msg-drawer{width:100vw;border-left:0}}
/* Catégories de fichiers en lignes */
.cats-h{margin-top:var(--s2)}
.cats-wrap{margin:0 0 var(--s5)}
.cats-table .cat-tr.is-on td{background:var(--primary-soft)}
.cats-table .ft-doc .ic{width:18px;height:18px;color:var(--muted)}
.cats-table td.num,.cats-table th.num{text-align:right;font-variant-numeric:tabular-nums}
/* CRM : tableau unique, en-têtes triables, bascule Tableau / Pipeline */
.crm-mode{margin-right:var(--s2)}
.crm-mode button .ic{width:16px;height:16px;margin-right:4px}
.th-sort{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.th-sort:hover{color:var(--ink)}
th.is-sorted .th-sort{color:var(--ink)}
.th-dir{font-size:11px;color:var(--primary-text)}
.tbl-crm td a:not(.btn){color:var(--ink);text-decoration:none}
.tbl-crm td a:not(.btn):hover{text-decoration:underline}
.crm-count{margin:var(--s2) 0 0}
/* Produits : photo */
.prod-row{align-items:center}
.prod-thumb{width:40px;height:40px;border-radius:var(--r-md);background:var(--soft);display:grid;place-items:center;color:var(--muted);flex:none;overflow:hidden;margin-right:var(--s3)}
.prod-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.prod-thumb .ic{width:18px;height:18px}
.prod-img-row{display:flex;align-items:center;gap:var(--s3)}
.prod-img-prev{width:88px;height:88px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--soft);display:grid;place-items:center;color:var(--muted);overflow:hidden;flex:none}
.prod-img-prev img{width:100%;height:100%;object-fit:cover;display:block}
.prod-img-acts{display:flex;flex-direction:column;gap:var(--s2);align-items:flex-start}
/* Tableau de bord : bloc Site Tracker */
.site-dash .row-end .row-title{display:inline-flex;align-items:center;gap:6px}

/* ---------- Règles d’ergonomie (étude UX Snacks, 11 octobre 2026) ---------- */
/* Titres de colonnes et de groupes en casse normale : plus lisibles que les MAJUSCULES espacées */
.notice-t,.ftable th,.ai-chip .tag,.fs legend,.crm-fs legend,.crm-th,.tbl th,.crm-tbl th,.side-group,.sheet-group,.menu-t,.site-lbl{text-transform:none;letter-spacing:0}
/* Contraste : les petits titres utilisent le gris lisible (4,5:1), pas le gris décoratif */
.side-group,.sheet-group,.menu-t{color:var(--muted)}
/* Confirmation d’une action destructive : bouton rouge plein, impossible à confondre */
.btn-danger-solid{background:var(--red);color:#fff;border-color:var(--red)}
.btn-danger-solid:hover{filter:brightness(.92)}
/* Mobile : zones tactiles d’au moins 44 px */
@media(max-width:959px){.btn{height:44px;min-height:44px}.btn-sm{height:36px;min-height:36px}}
@media(pointer:coarse){.icon-btn{position:relative}.pw .icon-btn{position:absolute}.icon-btn::after{content:"";position:absolute;inset:-4px}}
/* Longueur de ligne confortable pour les textes d’aide */
.page-help,.empty .muted,.sheet-head + .muted{max-width:68ch}
.empty .muted{margin-left:auto;margin-right:auto}
/* Chargement : squelettes à la place de « Chargement… » (la page garde sa forme) */
.skel-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}
.skel-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);min-height:var(--h-row)}
.skel-row+.skel-row{border-top:1px solid var(--line)}
.skel-t{flex:1;display:flex;flex-direction:column;gap:6px}
.skel{display:block;height:10px;width:60%;border-radius:var(--r-full);background:var(--soft);animation:skel 1.2s ease-in-out infinite alternate}
.skel-s{width:35%;height:8px}
.skel-ic{width:32px;height:32px;border-radius:var(--r-md);flex:none}
@keyframes skel{from{opacity:1}to{opacity:.45}}
@media (prefers-reduced-motion:reduce){.skel{animation:none}}

/* ---------- Finances et comptabilité ---------- */
.fin-panel{margin-top:var(--s4)}
.fin-actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s4)}
.fin-chips{display:flex;flex-wrap:wrap;gap:var(--s2);margin:0 0 var(--s4)}
.fin-chips .chip[aria-pressed="true"]{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
.fin-kpis,.fin-aging{margin-bottom:var(--s4)}
.kpi small{font-size:12px;color:var(--muted);line-height:1.4}
.fin-late,.fin-kpi-late b{color:var(--red)}
.fin-notice{display:flex;gap:8px;align-items:flex-start;margin-top:var(--s6);font-size:var(--fs-sm);color:var(--muted);max-width:72ch}
.fin-notice .ic{width:16px;height:16px;flex:none;margin-top:2px}
.fin-ok{display:flex;gap:8px;align-items:center;color:var(--green);font-weight:600;margin:var(--s2) 0}
.fin-ok .ic{width:18px;height:18px}
.fin-amt{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.fin-amt.pos{color:var(--green)}.fin-amt.neg{color:var(--ink)}
.fin-tbl .tbl-act{white-space:nowrap}
.fin-st-sub{margin-top:6px}
.fin-cancelled td{color:var(--muted);text-decoration:line-through}
.fin-cancelled td .tbl-sub,.fin-cancelled td:last-child{text-decoration:none}
.fin-bank-row{flex-wrap:wrap}
.fin-bank-act{flex-basis:100%;display:flex;flex-wrap:wrap;gap:var(--s2);padding-top:var(--s2)}
.fin-sugg{max-width:100%;white-space:normal;text-align:left;height:auto;min-height:34px;padding-top:6px;padding-bottom:6px}
.fin-period{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:flex-end;margin-bottom:var(--s4)}
.fin-period .field{min-width:150px}
.fin-inline{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:flex-end}
.fin-inline .field{flex:1 1 200px}
.fin-entry{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);margin-bottom:var(--s2)}
.fin-entry>summary{display:flex;gap:var(--s3);align-items:center;padding:var(--s3) var(--s4);cursor:pointer;list-style:none}
.fin-entry>summary::-webkit-details-marker{display:none}
.fin-entry-n{font:600 var(--fs-sm) var(--font);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.fin-entry-l{flex:1;min-width:0;color:var(--ink);font-weight:500;overflow-wrap:anywhere}
.fin-entry-l small{display:block;color:var(--muted);font-weight:400;font-size:var(--fs-xs)}
.fin-entry .tbl-wrap{border:0;border-top:1px solid var(--line);border-radius:0}
.fin-entry-act{padding:var(--s2) var(--s4);border-top:1px solid var(--line)}
.fin-exports{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;margin-top:var(--s6);padding-top:var(--s4);border-top:1px solid var(--line)}
.fin-exports .muted{flex-basis:100%}
.fin-bilan{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.fin-side{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:var(--s3) var(--s4)}
.fin-bl{display:flex;justify-content:space-between;gap:var(--s3);padding:6px 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm)}
.fin-bl span{min-width:0;overflow-wrap:anywhere}
.fin-total,.fin-total td{font-weight:700;color:var(--ink)}
.fin-bl.fin-total{border-bottom:0}
.fin-open td{color:var(--muted)}
.fin-plan{margin-top:var(--s3)}.fin-plan summary{cursor:pointer;color:var(--primary-text);font-weight:600}
.fin-due{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between;padding:var(--s3) var(--s4);margin:var(--s3) 0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.fin-due>div:first-child{display:flex;flex-direction:column;gap:2px}
.fin-due b{font-size:var(--fs-xl);color:var(--ink)}
.fin-due-act{display:flex;flex-wrap:wrap;gap:var(--s2)}
.doc-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.fin-msg{width:100%;font:inherit;padding:var(--s3);border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--surface-2);color:var(--text);resize:vertical}
.fin-line{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:var(--s2);align-items:center}
.fin-line select,.fin-line input{min-width:0;height:var(--h-control);border:1px solid var(--line-2);border-radius:var(--r-md);padding:0 8px;background:var(--surface);color:var(--ink);font:inherit}
.fin-eq{font-weight:600;color:var(--red)}.fin-eq.ok{color:var(--green)}
@media(max-width:759px){
  .fin-bilan{grid-template-columns:1fr}
  .fin-line{grid-template-columns:1fr 1fr;}
  .fin-line select{grid-column:1/-1}
  .fin-period .field{flex:1 1 140px;min-width:0}
  .fin-tbl .tbl-act .btn{padding:0 8px}
  .fin-recv th,.fin-recv td{padding-left:10px;padding-right:10px}
  .fin-recv .tbl-act{white-space:normal;width:1%}
  .fin-recv .tbl-act .btn{display:flex;width:100%;justify-content:center;margin:0 0 6px}
  .fin-recv .tbl-act .btn:last-child{margin-bottom:0}
  .fin-panel .grid-2,form[data-sub^="fin"] .grid-2{grid-template-columns:1fr}
}

/* ---------- Finances : révision (tiers, immobilisations, contrôles, clôture, états SYSCOHADA) ---------- */
.fin-lead{margin:0 0 12px;max-width:72ch}
.fin-filters{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:flex-end;margin:0 0 var(--s3)}.fin-filters .field{min-width:140px}
.fin-note{display:flex;gap:8px;align-items:flex-start;margin-top:var(--s4);max-width:72ch}.fin-note .ic{width:16px;height:16px;flex:none;margin-top:2px}
.sec-row{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between;margin-bottom:var(--s3)}
.fin-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.fin-lt{width:100%;border-collapse:collapse}.fin-lt td,.fin-lt th{vertical-align:top;padding:6px 8px 6px 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm)}
.fin-lt input[type=checkbox]{width:18px;height:18px;margin:2px 0 0}
.fin-lt tr.is-lettered td{color:var(--muted)}.fin-letter{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;letter-spacing:.04em}
.fin-wrap{white-space:normal;min-width:140px}
.fin-sumbar{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;justify-content:space-between;margin-top:var(--s3);padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);font-weight:600}
.fin-pend{margin-bottom:10px;align-items:center}.fin-pend .btn{margin-left:auto;flex:none}
.fin-ctl-sum{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}
.fin-ctl{display:flex;flex-direction:column;gap:8px}
.fin-ctl-i{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.fin-ctl-i.lv-erreur{border-color:var(--red)}.fin-ctl-i.lv-attention{border-color:var(--amber)}
.fin-ctl-i summary{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:start;padding:12px 14px;cursor:pointer;list-style:none}
.fin-ctl-i summary::-webkit-details-marker{display:none}
.fin-ctl-ic{display:flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:8px;background:var(--soft)}.fin-ctl-ic.red{background:var(--red-bg);color:var(--red)}.fin-ctl-ic.amber{background:var(--amber-bg);color:var(--amber)}
.fin-ctl-ic svg{width:16px;height:16px}
.fin-ctl-t{display:flex;flex-direction:column;gap:2px;min-width:0}.fin-ctl-t b{font-weight:600;color:var(--ink)}
.fin-ctl-n{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.fin-ctl-l{margin:0 14px 12px;border-top:1px solid var(--line)}
.fin-ctl-banner{margin:var(--s4) 0;align-items:center}.fin-ctl-banner .btn{margin-left:auto;flex:none}
.fin-checks .row{align-items:flex-start}.fin-ck{display:flex;width:22px;height:22px;flex:none;align-items:center;justify-content:center;margin-top:1px}.fin-ck svg{width:18px;height:18px}
.fin-ck.green{color:var(--green)}.fin-ck.red{color:var(--red)}.fin-ck.amber{color:var(--amber)}
.fin-cal .row{align-items:center}
.fin-cal-d{display:flex;flex-direction:column;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border-radius:10px;background:var(--soft);line-height:1.1}
.fin-cal-d b{font-size:16px;color:var(--ink)}.fin-cal-d small{font-size:11px;color:var(--muted)}
.fin-cal-d.soon{background:var(--amber-bg)}.fin-cal-d.soon b{color:var(--amber)}
.fin-cal .row-end{display:flex;flex-direction:column;align-items:flex-end}
.fin-cal .row-sub{white-space:normal}
.fin-states{display:grid;gap:var(--s4)}.fin-card{padding:var(--s3) var(--s4);overflow:hidden}.fin-card .h3{margin-bottom:var(--s2)}
.fin-st{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.fin-st td,.fin-st th{padding:6px 6px 6px 0;vertical-align:top;border-bottom:1px solid var(--line)}.fin-st th{font-size:12px;font-weight:600;color:var(--muted);text-align:left}
.fin-st th.n,.fin-st td.n{text-align:right;white-space:nowrap;padding-left:14px;width:1%;font-variant-numeric:tabular-nums}
.fin-st td.mono{width:34px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.fin-st .tbl-sub{display:block;font-size:11.5px;color:var(--faint)}
.fin-st tr.fin-tot td{font-weight:700;color:var(--ink)}.fin-st tr.fin-grand td{border-top:2px solid var(--ink)}
.fin-unit{margin:12px 0 -2px}
.green{color:var(--green)}.red{color:var(--red)}
@media (max-width:759px){.fin-st .col-md,.fin-lt .col-md{display:none}.fin-ctl-i summary{grid-template-columns:28px 1fr}.fin-ctl-n{grid-column:2;align-items:flex-start;text-align:left;flex-direction:row;gap:8px}.fin-pend,.fin-ctl-banner{flex-wrap:wrap}.fin-pend .btn,.fin-ctl-banner .btn{margin-left:0}}
@media (max-width:420px){.fin-st .col-sm{display:none}}
button.link.tbl-main{text-align:left}
@media (max-width:759px){.tbl-fin-assets td:first-child,.tbl-fin-tiers td:first-child{min-width:150px}}

/* =====================================================================
   CHARTE DE MARQUE PYLLOTE (Brand Identity, Figma, 2026) — dernière couche, prioritaire.
   Couleurs : Papier #F5F5F3 (fond), Encre #18181B (information), Bleu Pyllote #007AFF (≤ 10 %, l’action),
   accompagnement Blanc, Bleu Voile #E6F1FF, Graphite #27272A, Gris Instrument #71717A, Ligne #E4E4E7 ;
   signaux produit Vert #16A34A, Ambre #D97706, Rouge #DC2626.
   Règle : un seul bleu par écran — l’action principale. Le noir porte l’information, le papier laisse respirer.
   Interface en police système ; Plus Jakarta Sans réservée aux écrans de marque (connexion).
   Éléments graphiques : le mât (barres à bouts ronds), le point (état actif, présence de l’assistant).
   Textes en bleu : #0062CC (le bleu #007AFF sur blanc n’atteint pas 4,5:1 pour le petit texte).
   ===================================================================== */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/plus-jakarta-sans-latin-700-normal.woff2?v=fc99a59b897425a0") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/plus-jakarta-sans-latin-ext-700-normal.woff2?v=187a90b6c06c8efa") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:800;font-display:swap;src:url("/fonts/plus-jakarta-sans-latin-800-normal.woff2?v=9b74d53a7dca5c40") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:800;font-display:swap;src:url("/fonts/plus-jakarta-sans-latin-ext-800-normal.woff2?v=5c4630232f06cffd") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{
  --primary:#007AFF;--primary-hover:#0066D6;--primary-text:#0062CC;--primary-soft:#E6F1FF;--on-primary:#FFFFFF;
  --bg:#F5F5F3;--surface:#FFFFFF;--surface-2:#F7F7F5;--hover:#EFEFEC;--soft:#EDEDEA;
  --ink:#18181B;--text:#27272A;--muted:#71717A;--faint:#A1A1AA;--on-ink:#FFFFFF;
  --line:#E4E4E7;--line-2:#D4D4D8;
  --green:#15803D;--green-bg:#ECFDF3;--amber:#B45309;--amber-bg:#FFF7E6;--red:#DC2626;--red-bg:#FEF2F2;--info:#0062CC;--info-bg:#E6F1FF;
  --sig-green:#16A34A;--sig-amber:#D97706;--sig-red:#DC2626;--sig-blue:#007AFF;
  --font-brand:"Plus Jakarta Sans",var(--font);
}
body{background:var(--bg)}

/* Titres : police de l’appareil, graisse forte, approche serrée */
.h1,.sheet-head .h2,.wiz-top h1{font-family:var(--font);font-weight:700;letter-spacing:-.02em;color:var(--ink)}
.h1{font-size:22px;line-height:1.25}

/* Le bleu ne sert qu’à l’action : liens, onglets, filtres et navigation en encre */
.link,.section-h .link{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.link:hover{text-decoration-color:var(--ink)}
.tab[aria-selected="true"]::after{background:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}

/* Navigation : la page active est marquée par le mât (encre, bouts ronds) ; icône en encre */
.side-link{position:relative}
.side-link.is-on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 0 0 1px var(--line)}
.side-link.is-on .ic{color:var(--ink)}
.side-link.is-on::before{content:"";position:absolute;left:-12px;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--ink)}
/* La liste défile : on l’élargit jusqu’au bord de la barre pour que le mât ne soit pas coupé */
.side-nav{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}
/* Mobile : l’onglet actif de la barre du bas en encre ; le bleu reste au bouton « Ajouter » */
.bn.is-on{color:var(--ink)}

/* Statuts : le point porte le signal, le libellé reste en encre (le rouge garde son texte rouge) */
.badge.green,.badge.amber,.badge.blue{background:var(--soft);color:var(--ink)}
.badge.red{background:var(--red-bg);color:var(--red)}
.badge.green::before,.badge.amber::before,.badge.red::before,.badge.blue::before{content:"";flex:none;width:6px;height:6px;border-radius:50%}
.badge.green::before{background:var(--sig-green)}.badge.amber::before{background:var(--sig-amber)}.badge.red::before{background:var(--sig-red)}.badge.blue::before{background:var(--sig-blue)}

/* Assistant : le point bleu signale sa présence */
body .ai-fab::after{content:""!important;position:absolute;top:10px;left:27px;width:7px;height:7px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 2px var(--ink)}

/* Données : le mât. Barres à bouts ronds, en encre */
.bar{height:6px;border-radius:3px;background:var(--soft);overflow:hidden}
.bar span{display:block;height:100%;border-radius:3px;background:var(--ink)}
.goal-bar{border-radius:999px;background:var(--soft)}.goal-bar span{border-radius:999px;background:var(--ink)}

/* Écrans de connexion : panneau de marque (FER-012 : fond clair sans trait, logo foncé, devise en Plus Jakarta Sans, mâts) */
.auth-brand{display:none}
.auth .h1,.auth-title{font-family:var(--font-brand);font-weight:800;letter-spacing:-.025em}
@media(min-width:1024px){
  .auth{display:grid;grid-template-columns:minmax(380px,44%) minmax(0,1fr);align-items:stretch;padding:0;min-height:100vh}
  .auth>.auth-col{align-self:center;justify-self:center;margin:var(--s10) var(--s8)}
  .auth-brand{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:var(--s8);min-height:100vh;padding:56px 56px 48px;background:var(--bg);color:var(--ink);overflow:hidden}
  .auth-brand-logo{width:150px;height:auto;display:block}
  .auth-brand-t{margin:0;font:800 clamp(44px,4.6vw,68px)/.98 "Plus Jakarta Sans",var(--font);letter-spacing:-.035em;color:var(--ink)}
  .auth-mats{display:flex;align-items:flex-end;gap:18px;height:170px;max-width:420px}
  .auth-mats i{flex:1;max-width:22px;min-height:22px;border-radius:999px;background:var(--ink)}
  .auth-mats i.on{background:#007AFF}
  .auth-brand-s{margin:0;font-size:14px;color:var(--muted)}
  /* Logo jamais répété : sur grand écran, celui du panneau suffit */
  .auth-col>.brand{display:none}
}

/* ---------- Charte : compléments (12 octobre 2026) ---------- */
/* Chiffres : tous en IBM Plex Mono (police réduite aux chiffres 0 à 9 et aux espaces insécables des montants ; les lettres gardent la police système) */
@font-face{font-family:"Pyllote Chiffres";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono-chiffres-400.woff?v=8317cd9ab68cdb83") format("woff");unicode-range:U+0030-0039,U+00A0,U+202F}
@font-face{font-family:"Pyllote Chiffres";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/ibm-plex-mono-chiffres-700.woff?v=9c6a9ecd28e8c63a") format("woff");unicode-range:U+0030-0039,U+00A0,U+202F}
:root{
  --font:"Pyllote Chiffres",-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Segoe UI Variable Text","Segoe UI",system-ui,Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-brand:"Pyllote Chiffres","Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
}
.auth-brand-t{font-family:var(--font-brand)}

/* Gros titres : Plus Jakarta Sans très grasse, comme « Voir clair. Décider. Avancer. » */
.h1,.wiz-top h1{font-family:var(--font-brand);font-weight:800;letter-spacing:-.03em;font-size:24px;line-height:1.2}

/* La boucle du P de Pyllote, en grand et en bleu, en fond de l’écran principal : elle part du bord de la barre latérale,
   comme si elle sortait de celle-ci, en bas à gauche du contenu. Décorative, sous le contenu, jamais au-dessus. */
@media(min-width:960px){
  .side{z-index:2}
  .main{position:relative}
  /* Fixe dans la fenêtre, comme l’était la barre latérale ; passe sous la barre latérale, qui la coupe */
  .main::before{content:"";position:fixed;left:calc(var(--side-w) - 170px);bottom:16px;width:520px;height:520px;pointer-events:none;z-index:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M20 30H100a55 55 0 0 1 0 110H78' fill='none' stroke='%23007AFF' stroke-width='40' stroke-linecap='round' stroke-linejoin='round' opacity='.1'/%3E%3C/svg%3E") no-repeat center/contain}
  .main>*{position:relative;z-index:1}
}

/* « Créer » : dans la barre latérale, sous l’entreprise (même menu qu’auparavant) */
.side-create{width:100%;height:36px;min-height:36px;justify-content:flex-start;gap:10px;padding:0 var(--s2);margin:0 0 var(--s3);font-size:var(--fs-md)}
.side-create .ic{width:18px;height:18px}

/* Graphiques : le mât. Barres épaisses à bouts ronds, en gris ; la période en cours en bleu */
.sc-bar{fill:var(--line-2);fill-opacity:1}
.sc-bar.on{fill:var(--primary)}
.sc-bar:hover{fill:var(--ink)}
.bar{height:8px;border-radius:999px}.bar span{border-radius:999px}
.goal-bar{height:10px}

/* ---------- Cases chiffrées et états bleus (demande du 12 octobre 2026) ---------- */
/* Cases « titre + chiffre » : cartes séparées, fin contour gris, titre au-dessus, chiffre en grand,
   écart en couleur juste à côté du chiffre (vert / rouge, sans pastille). Survol : contour bleu Pyllote. */
.kpis{display:flex;flex-wrap:wrap;gap:var(--s3);background:none;border:0;border-radius:0;overflow:visible;margin:0 0 var(--s6)}
.kpis>.kpi{flex:1 1 190px;min-width:0;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);padding:10px 14px 12px;gap:2px;box-shadow:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.kpis>.kpi:nth-child(n){border:1px solid var(--line-2)}
.kpi>span{font-size:15px;line-height:1.35;color:var(--text);font-weight:400}
.kpi>b{font-size:22px;line-height:1.3;font-weight:400;letter-spacing:0;color:var(--ink)}
.kpi.warn>b{color:var(--red)}
.kpi small{font-size:12px;color:var(--muted)}
.site-kpis .kpi b{gap:var(--s2)}
.kpi .tb{height:auto;padding:0;background:none;font-size:15px;font-weight:600}
.kpi .tb .ic{display:none}
.kpi .tb-up{color:var(--green)}.kpi .tb-down{color:var(--red)}.kpi .tb-flat,.kpi .tb-none{color:var(--muted)}
.kpis>a.kpi:hover,.kpis>a.kpi:focus-visible,.kpis>a.kpi.is-on{background:var(--surface);border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);outline:none}
/* Au plus 3 cases par ligne (5 → 3 + 2, 4 → 2 + 2), la dernière ligne s’élargit */
.kpis>.kpi{flex-basis:calc(33.333% - var(--s3))}
.kpis:has(>.kpi:nth-child(4):last-child)>.kpi{flex-basis:calc(50% - var(--s3))}
@media(max-width:759px){.kpis>.kpi,.kpis:has(>.kpi:nth-child(4):last-child)>.kpi{flex-basis:calc(50% - var(--s1))}}
@media(max-width:759px){.kpis{gap:var(--s2)}.kpis>.kpi{flex:1 1 calc(50% - var(--s1))}.kpi>b{font-size:18px}.kpi>span{font-size:13px}}

/* Sélection et survol : le bleu Pyllote. L’élément sélectionné est bleu ; dès que la souris passe sur un élément cliquable, il devient bleu. */
.side-link.is-on{background:var(--primary-soft);color:var(--primary-text);box-shadow:none}
.side-link.is-on .ic,.side-link:hover .ic{color:var(--primary-text)}
.side-link.is-on::before{background:var(--primary)}
.side-link:hover{color:var(--primary-text)}
.tab:hover,.tab[aria-selected="true"]{color:var(--primary-text)}
.tab[aria-selected="true"]::after{background:var(--primary)}
.chip:hover{border-color:var(--primary);color:var(--primary-text);background:var(--surface)}
.chip[aria-pressed="true"],.fin-chips .chip[aria-pressed="true"]{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-text)}
.seg button:hover,.seg button.is-on,.seg button[aria-pressed="true"]{color:var(--primary-text)}
.bn:hover,.bn.is-on{color:var(--primary-text)}
.link:hover{color:var(--primary-text);text-decoration-color:var(--primary)}
.btn-secondary:hover{border-color:var(--primary);color:var(--primary-text);background:var(--surface)}
.btn-ghost:hover,.icon-btn:hover,.co-btn:hover,.co-switch:hover{color:var(--primary-text)}
.icon-btn:hover .ic,.co-btn:hover .ic{color:var(--primary-text)}
button.row:hover .row-title,a.row:hover .row-title,button.row:hover .row-ic,a.row:hover .row-ic{color:var(--primary-text)}

/* ---------- Tableau de bord et graphiques en mâts (13 octobre 2026) ---------- */
/* Le mât : une colonne par période, barre grise à bouts ronds ; la période mise en avant en Bleu Pyllote avec sa valeur */
.mats{display:flex;align-items:flex-end;gap:6px;height:var(--mat-h,160px);padding-top:22px;box-sizing:content-box}
.mat{flex:1 1 0;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;gap:6px}
.mat i{display:block;width:100%;max-width:26px;min-height:6px;border-radius:999px;background:var(--line-2);transition:background var(--t-fast)}
.mat.on i{background:var(--primary)}
.mat:hover i{background:var(--ink)}.mat.on:hover i{background:var(--primary-hover)}
.mat-l{font-size:11px;color:var(--muted);white-space:nowrap;line-height:1}
.mat.on .mat-l{color:var(--primary-text);font-weight:600}
.mat-v{position:absolute;top:-22px;left:50%;transform:translateX(-50%);font-size:12px;font-weight:600;color:var(--primary-text);white-space:nowrap;line-height:1}
.mat:last-child .mat-v{left:auto;right:0;transform:none}.mat:first-child .mat-v{left:0;transform:none}
.mats-sm{gap:4px;padding-top:0;margin-top:10px}.mats-sm .mat i{max-width:14px;min-height:4px}
@media(max-width:759px){.mats{gap:3px}.mat-l{font-size:10px}.mat:nth-child(even) .mat-l{visibility:hidden}.mat-v{font-size:11px}}

/* Blocs du tableau de bord : cartes séparées, comme les cases chiffrées */
.dash-card{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);padding:14px 16px 16px}
.dash-card .section-h{margin-bottom:var(--s3)}
.dash-top{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2.2fr);gap:var(--s3);margin:0 0 var(--s4)}
.dash-top>.dash-kpi{margin:0;height:auto;justify-content:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);padding:14px 16px;gap:2px;box-shadow:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
/* Colonne de gauche : deux rectangles de même hauteur, qui ensemble font la hauteur du graphique */
.dash-top-l{display:grid;grid-template-rows:1fr 1fr;gap:var(--s3);min-width:0}
.dash-top-l>.dash-kpi{margin:0;height:auto;justify-content:center;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);padding:14px 16px;gap:2px;box-shadow:none;transition:border-color var(--t-fast),box-shadow var(--t-fast);text-decoration:none;color:inherit}
.dash-top-l>.dash-kpi:hover,.dash-top-l>.dash-kpi:focus-visible{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);outline:none}
.dash-top-l>.dash-kpi>span{font-size:15px;color:var(--text)}.dash-top-l>.dash-kpi>b{font-size:22px;font-weight:400;color:var(--ink)}
/* Accès aux fichiers : icône, libellé, chevron */
.dash-go{position:relative;padding-right:40px}
.dash-go-ic{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:var(--r-sm);background:var(--primary-soft);color:var(--primary-text);margin-bottom:6px}
.dash-go-ic .ic{width:18px;height:18px}
.dash-go-t{font-size:16px;font-weight:600;color:var(--ink)}
.dash-go:hover .dash-go-t{color:var(--primary-text)}
.dash-go-chev{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted)}
.dash-go:hover .dash-go-chev{color:var(--primary-text)}
@media(max-width:899px){.dash-top-l{grid-template-columns:1fr 1fr;grid-template-rows:auto}}
@media(max-width:599px){.dash-top-l{grid-template-columns:1fr}}
.dash-top>.dash-kpi>span{font-size:15px;color:var(--text)}.dash-top>.dash-kpi>b{font-size:22px;font-weight:400;color:var(--ink)}
.dash-chart{min-width:0}.dash-chart-s{margin:var(--s3) 0 0}
@media(max-width:899px){.dash-top{grid-template-columns:1fr}}

/* Deux colonnes qui finissent au même niveau : chaque colonne est une pile, son dernier bloc s’étire */
.dash-cols{align-items:stretch;gap:var(--s4)}
.dash-col{display:flex;flex-direction:column;gap:var(--s4);min-width:0}
.dash-col>.section{border-top:0;padding-top:0;margin:0}
.dash-col>.section,.dash-col>.dash-card{display:flex;flex-direction:column}
.dash-col>.section{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);padding:14px 16px 16px}
.dash-col>*:last-child{flex:1 1 auto}
.dash-col .list{margin:0 -16px;}
.dash-col .list .row:first-child{border-top:0}
.dash-col .list .row{padding-left:16px;padding-right:16px}
@media(max-width:1023px){.dash-cols{gap:var(--s4)}.dash-cols>div+div>.section:first-child{border-top:1px solid var(--line-2);padding-top:14px}.dash-col>*:last-child{flex:0 0 auto}}
/* FER-011 : la première carte de chaque colonne (« À faire aujourd’hui », « Planning du jour ») garde sa bordure et sa marge haute de 14 px, comme les autres. */
.dash-cols>div.dash-col>.section:first-child{border-top:1px solid var(--line-2);padding-top:14px}

/* Carte des visites par pays (Site Tracker) : hauteur moyenne, classement des trois premiers pays */
.dash-map #dash-map{border-radius:var(--r-sm);overflow:hidden;background:var(--surface)}
.dash-map .section-h{align-items:flex-start}
.dash-map .section-h p{margin:2px 0 0}
.dash-map-top{list-style:none;margin:var(--s3) 0 0;padding:0;display:flex;gap:var(--s4);flex-wrap:wrap}
.dash-map-top li{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text)}
.dash-map-top b{font-weight:600;color:var(--ink)}
.dash-map-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);flex:none}

/* Résultats : progression des commerciaux, une case par commercial avec son graphique */
.sellers{display:flex;flex-wrap:wrap;gap:var(--s3)}
.sellers>.seller{flex:1 1 calc(33.333% - var(--s3));min-width:200px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);padding:10px 14px 12px;display:flex;flex-direction:column;gap:2px}
.seller>b{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.seller .tb{height:auto;padding:0;background:none;font-size:14px;font-weight:600}
.seller .tb-up{color:var(--green)}.seller .tb-down{color:var(--red)}.seller .tb-flat{color:var(--muted)}
@media(max-width:759px){.sellers>.seller{flex-basis:100%}}

/* ---------- Code couleur à trois couleurs (13 octobre 2026) : Papier (fond), Encre (contenu), Bleu Pyllote (important) ----------
   Les barres des graphiques ne sont plus grises : en encre, la période mise en avant en bleu ; au survol, bleu. */
.mat i{background:var(--ink)}
.mat.on i{background:var(--primary)}
.mat:hover i,.mat.on:hover i{background:var(--primary-hover)}
.sc-bar{fill:var(--ink);fill-opacity:1}
.sc-bar.on{fill:var(--primary)}
.sc-bar:hover{fill:var(--primary-hover)}
/* Écran de connexion (FER-012) : sur le panneau clair, les mâts sont gris, celui mis en avant en bleu */
@media(min-width:1024px){.auth-mats i{background:var(--ink)}.auth-mats i.on{background:#007AFF}}

/* Barre du haut (ordinateur) : la recherche est centrée dans l’écran principal, à partir de la barre latérale ;
   messages et notifications restent à droite, inchangés. */
@media(min-width:960px){
  .topbar{position:relative}
  .top-search{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100% - 300px));max-width:420px;flex:none}
}
/* Écart en pourcentage dans un titre de bloc : texte seul, en couleur, sans pastille (comme dans les cases chiffrées) */
.section-t .tb,.crm-h2 .tb{height:auto;padding:0;background:none;font-size:14px;font-weight:600;vertical-align:baseline;margin-left:4px}
.section-t .tb-up,.crm-h2 .tb-up{color:var(--green)}.section-t .tb-down,.crm-h2 .tb-down{color:var(--red)}.section-t .tb-flat,.crm-h2 .tb-flat{color:var(--muted)}
/* FER-004 (14 oct. 2026) : marge basse des pages assez grande pour que le bas de chaque page remonte au-dessus du bouton de l’assistant (.ai-fab).
   Mobile : barre du bas 64 + écart 14 + bouton 52 + 14 d’air. Ordinateur : bas 24 + bouton 48 + 24 d’air. Écran de conversation inchangé. */
@media(max-width:959px){body:not(.in-conv) .main{padding-bottom:calc(var(--nav-h) + 80px + env(safe-area-inset-bottom,0px))}}
@media(min-width:960px){body:not(.in-conv) .main{padding-bottom:96px}}
/* FER-006 (14 oct. 2026) : sur ordinateur, les onglets des Paramètres passent à la ligne au lieu de défiler (ils dépassaient à 1366 px).
   Limité à la barre des Paramètres (boutons settingsTab) ; iPhone et autres onglets inchangés. */
@media(min-width:960px){.tabs:has(> [data-a="settingsTab"]){flex-wrap:wrap;row-gap:8px;overflow-x:visible}}

/* ARM-021 : trois cartes à gauche du chiffre d’affaires (encaissements attendus). */
@media(min-width:900px){.dash-top-l:has(> :nth-child(3)){grid-template-rows:none;grid-auto-rows:1fr}}

/* ===== Pointage (ARM-024) : carte de l’accueil, page de suivi, feuille de correction ===== */
.ptg-cols{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:16px;align-items:start;margin-bottom:16px}
@media(max-width:959px){.ptg-cols{grid-template-columns:1fr}}
.ptg-card{display:flex;flex-direction:column;gap:12px}
.ptg-state{display:flex;align-items:center;gap:12px}
.ptg-state .row-ic{width:40px;height:40px;border-radius:999px}
.ptg-state.on .row-ic{background:var(--green-bg);color:var(--green)}
.ptg-state b{display:block;font-size:17px;font-weight:600;color:var(--ink)}
.ptg-state small{display:block;font-size:13px;color:var(--muted)}
.ptg-big{min-height:56px;font-size:17px;font-weight:600;justify-content:center;gap:10px}
.ptg-big .ic{width:22px;height:22px}
.ptg-week{display:flex;flex-direction:column}
.ptg-day{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:14px}
.ptg-day:first-child{border-top:0}
.ptg-day span{color:var(--text)}.ptg-day b{font-weight:400;color:var(--ink);white-space:nowrap}
.ptg-day em{font-style:normal;color:var(--muted);font-size:13px;display:block}
.ptg-tot{display:flex;justify-content:space-between;padding-top:10px;border-top:1px solid var(--line-2);font-weight:600;color:var(--ink)}
.ptg-here{display:flex;flex-wrap:wrap;gap:8px}
.ptg-here .who{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border:1px solid var(--line-2);border-radius:999px;background:var(--surface);font-size:14px;color:var(--ink)}
.ptg-here .who small{color:var(--muted);font-size:12px}
.ptg-here .avatar{width:28px;height:28px;font-size:11px}
.ptg-sec{margin-bottom:24px}
.callout .ptg-fixbtn{margin-left:auto;flex:none}
.tbl-ptg td.d{white-space:nowrap;font-size:13px;vertical-align:top}
.tbl-ptg td.d b{display:block;font-weight:400;color:var(--ink);font-size:14px}
.tbl-ptg td.d .badge{display:flex;width:fit-content;margin-top:4px}
.tbl-ptg th.today,.tbl-ptg td.today{background:var(--hover)}
.tbl-ptg .ptg-total{font-weight:500;color:var(--ink)}
.ptg-hist{display:flex;flex-direction:column;margin-top:8px}
.ptg-hist div{padding:8px 0;border-top:1px solid var(--line);font-size:13px;color:var(--text)}
.ptg-hist div:first-child{border-top:0}
.ptg-hist s{color:var(--muted)}
.ptg-h3{font-size:14px}
.ptg-times{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ptg-line{padding:10px 0;border-top:1px solid var(--line);font-size:14px}.ptg-line:first-of-type{border-top:0}
.ptg-line b{display:block;color:var(--ink);font-weight:600}
.ptg-l{display:block;color:var(--text)}.ptg-line .badge{margin-top:4px;margin-right:4px}
.ptg-danger{color:var(--red)}
.ptg-seg{flex:none}.ptg-seg button{white-space:nowrap}
.toast.warn{background:var(--amber-bg);color:var(--amber);border:1px solid currentColor}
.fin-miss-btn{margin-left:auto;flex:none}
.fin-capped{margin-top:12px}
.fin-capped-acc{margin:8px 0}

/* Stock simple (F1) : quantité sur la liste Produits et services, bloc de la fiche produit, ajustement. Aucun cadre pointillé. */
.prod-stock{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:var(--fs-sm);white-space:nowrap}
.prod-stock .ps-n{font-weight:600;color:var(--ink)}
.prod-stock .ps-n.neg{color:var(--red)}
.prod-stock.ps-m{display:none;margin-top:4px}
@media(max-width:759px){.prod-stock.ps-d{display:none}.prod-stock.ps-m{display:inline-flex}}
.stock-q{display:flex;gap:8px;align-items:center}
.stock-q input.ro{flex:1;min-width:0;background:var(--surface-2);color:var(--muted)}
.stock-h{font-size:var(--fs-sm);font-weight:600;color:var(--ink);margin:4px 0 0}
.stock-mv{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.stock-mv-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.stock-mv-t small{color:var(--muted);font-size:12px}
.stock-mv b{font-weight:500;font-variant-numeric:tabular-nums}
.stock-recap{margin:0}

/* Rapport d’intervention (F3) : pièces, photos, signature. Bordures pleines seulement, aucun pointillé. */
.ir-sub{margin:-4px 0 0}
.ir-parts{display:flex;flex-direction:column;gap:8px}
.ir-part{display:flex;align-items:center;gap:12px;padding:8px 8px 8px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.ir-part-n{flex:1;min-width:0;color:var(--ink)}
.ir-step{display:flex;align-items:center;gap:10px;flex:none}
.ir-step .num{min-width:22px;text-align:center}
.ir-pm{width:34px;height:34px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.ir-addp{align-self:flex-start;margin-top:8px}
.ir-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:420px}
.ir-ph{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--surface-2)}
.ir-ph img{width:100%;height:100%;object-fit:cover;display:block}
.ir-photos .ir-ph-add{display:flex;margin:0;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer}
.ir-ph-x{position:absolute;top:4px;right:4px;width:24px;height:24px;border:0;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;display:flex;align-items:center;justify-content:center;padding:0}
.ir-ph-x svg{width:14px;height:14px}
.ir-recap{padding:12px 14px;border-radius:12px;background:var(--surface-2);color:var(--ink);font-size:var(--fs-sm);line-height:1.5}
.ir-padw{position:relative;border:1px solid var(--line-2);border-radius:12px;background:#fff;height:170px}
.ir-pad{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair;border-radius:12px}
.ir-pad-h{position:absolute;left:12px;bottom:10px;font-size:12px;color:var(--faint);pointer-events:none}
.ir-padw.signed .ir-pad-h{display:none}
.ir-pad-acts{display:flex;justify-content:flex-end;margin-top:6px}
.ir-ok{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:#ECFDF3;color:#067647;font-size:var(--fs-sm);line-height:1.5}
.ir-ok svg{flex:none;width:18px;height:18px;margin-top:2px}
.ir-c{text-align:center;margin-top:0}
/* Factures d’acompte (F4, maquette FER-F4) : section « Acomptes » du devis, fenêtre « Demander un acompte », déductions de la facture finale. */
.dep-sec{margin:0 0 20px;padding-top:20px;border-top:1px solid var(--line)}
.dep-sec .h2{margin:0 0 12px}
.dep-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}
.dep-tile{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.dep-tile span{font-size:var(--fs-sm);color:var(--muted)}
.dep-tile b{font-size:17px;font-weight:700;color:var(--ink);white-space:nowrap}
.dep-tile.dep-rest{background:var(--primary-soft);border-color:transparent}
.dep-tile.dep-rest b{color:var(--primary-text)}
.dep-list{display:flex;flex-direction:column;gap:8px}
.dep-row{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.dep-row-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.dep-row-t .link{font-weight:600;text-align:left;color:var(--primary-text);text-decoration:none}
.dep-row-t small{color:var(--muted);font-size:var(--fs-sm)}
.dep-row-a{display:flex;align-items:center;gap:10px;flex:none}
.dep-row-a b{color:var(--primary-text);font-weight:600}
.dep-sub{margin:0}
.dep-recap{padding:14px 16px;border-radius:12px;background:var(--soft)}
.dep-recap-t{margin:0 0 8px;color:var(--ink)}
.dep-dl{margin:0;display:flex;flex-direction:column;gap:6px}
.dep-dl div{display:flex;justify-content:space-between;gap:12px}
.dep-dl dt{color:var(--text)}.dep-dl dd{margin:0;white-space:nowrap}
.dep-dl .dep-ttc{border-top:1px solid var(--line-2);padding-top:8px;margin-top:2px;font-weight:700;color:var(--ink)}
.p-sum .p-dep td{color:#3A3A3C;font-size:12.5px}
.p-sum .p-dep .p-disc{font-size:11px}
@media(max-width:699px){
  .dep-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dep-tile b{font-size:16px}
  .dep-row{align-items:flex-start}
  .dep-row-a{flex-direction:column;align-items:flex-end;gap:6px}
}
