/* Hub Réhaneuf – charte : bleu du logo #19396C / #2E5FA8, polices du site (Public Sans, Poppins) servies en local (RGPD) */
@font-face{font-family:"Public Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/public-sans-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/public-sans-normal-latin-ext.woff2) 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:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-normal-latin-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-normal-latin-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{color-scheme:light;
  --bg:#F3F6FB;--surface:#FFFFFF;--ink:#14203A;--muted:#4A5873;--line:#CBD5E4;--tint:#E6EDF8;
  --primary:#19396C;--primary-2:#2E5FA8;--on-primary:#FFFFFF;--danger:#A12222;--danger-bg:#FBE4E4;--ok-bg:#DDF1E2;--ok:#14401D;--warn-bg:#FCEBDD;--warn:#7A3300;
  --radius:12px;--shadow:0 1px 2px rgba(20,32,58,.08),0 4px 14px rgba(20,32,58,.06);
  --side:244px;--tabbar:64px;
}


*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 "Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
h1,h2,h3{font-family:"Poppins","Public Sans",system-ui,sans-serif;line-height:1.2;margin:0 0 .5rem}
h1{font-size:1.55rem;font-weight:600;color:var(--primary)}
h2{font-size:1.15rem;font-weight:600}
a{color:var(--primary-2)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.stage-tab:focus-visible{outline:3px solid var(--primary-2);outline-offset:2px}
small,.muted{color:var(--muted)}
code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.92em}
hr{border:0;border-top:1px solid var(--line);margin:1.2rem 0}
[hidden]{display:none!important}

/* Structure */
.main{padding:16px 16px calc(var(--tabbar) + 24px + env(safe-area-inset-bottom,0px));padding-top:calc(16px + env(safe-area-inset-top,0px));max-width:1500px;margin:0 auto}
.side{display:none}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--tabbar);color:var(--muted);text-decoration:none;font-size:.78rem;font-weight:500}
.tab.on{color:var(--primary);font-weight:700;box-shadow:inset 0 3px 0 var(--primary)}
@media (min-width:900px){
  .tabbar{display:none}
  .side{display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:var(--side);background:var(--primary);color:var(--on-primary);padding:18px 14px;z-index:10}
  body:not(.guest) .main{margin-left:var(--side);padding:28px 32px 48px;max-width:none}
  body:not(.guest) .main>*{max-width:1500px}
  .mobile-only{display:none}
}

.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font:600 1.05rem "Poppins",sans-serif;margin-bottom:22px}
.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--on-primary);color:var(--primary);font-weight:800}
.side nav{display:flex;flex-direction:column;gap:2px}
.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:9px;color:inherit;text-decoration:none;font-weight:500;min-height:44px}
.nav-item:hover{background:rgba(255,255,255,.12)}
.nav-item.on{background:rgba(255,255,255,.2);font-weight:700}
.nav-item.soon{opacity:.55;cursor:default}
.nav-item small{margin-left:auto;color:inherit;font-size:.7rem;border:1px dashed currentColor;border-radius:99px;padding:0 7px}
.nav-sep{height:1px;background:rgba(255,255,255,.25);margin:10px 0}
.side-foot{margin-top:auto;font-size:.9rem;display:flex;flex-direction:column;gap:2px}
.side-foot a{color:inherit;font-weight:600}
.side-foot small{color:inherit;opacity:.8}
.link{background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;text-align:left}
.main .link{color:var(--primary-2)}
.back{display:inline-block;margin-bottom:6px;font-size:.92rem}

/* En-têtes de page */
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.page-head h1{margin:0}
.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px;font-weight:500}
.flash.ok{background:var(--ok-bg);color:var(--ok)}
.flash.err{background:var(--danger-bg);color:var(--danger)}
.alert{background:var(--danger-bg);color:var(--danger);padding:10px 14px;border-radius:10px;font-weight:500;border-left:5px solid var(--danger)}
.notice{background:var(--warn-bg);color:var(--warn);padding:10px 14px;border-radius:10px;border-left:5px solid var(--warn)}

/* Boutons et formulaires */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:10px;border:2px solid var(--primary);background:var(--primary);color:var(--on-primary);font:600 .95rem "Poppins","Public Sans",sans-serif;text-decoration:none;cursor:pointer}
.btn:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent;color:var(--primary)}
.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}

.btn.small{min-height:36px;padding:0 12px;font-size:.85rem}
.btn[disabled]{opacity:.6;cursor:wait}
label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:.92rem}
input,select,textarea{font:inherit;font-weight:400;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;min-height:44px;width:100%}
textarea{resize:vertical}
input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--primary)}
label.check{flex-direction:row;align-items:center;gap:10px;font-weight:500}
fieldset{border:1.5px solid var(--line);border-radius:10px;padding:10px 14px 14px;margin:0}
legend{font-weight:600;padding:0 6px;font-size:.92rem}
.stack{display:flex;flex-direction:column;gap:14px}
.narrow{max-width:560px}
.grid2{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
@media (min-width:700px){.grid2{grid-template-columns:1fr 1fr}}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.filters{display:grid;gap:10px;grid-template-columns:minmax(0,1fr);margin-bottom:14px}
@media (min-width:760px){.filters{grid-template-columns:minmax(220px,2fr) 1fr 1fr auto auto;align-items:center}}
.code{letter-spacing:.35em;font-size:1.5rem;text-align:center}
.secret{display:inline-block;background:var(--tint);padding:6px 10px;border-radius:8px;font-size:1.05rem;word-break:break-all}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.inline{display:inline-flex;gap:6px;align-items:center}
.inline select{min-height:36px;padding:4px 8px;width:auto}

/* Cartes et listes */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px;box-shadow:var(--shadow)}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.card .list{border:0;border-radius:0}
.list li+li{border-top:1px solid var(--line)}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;min-height:56px;color:inherit;text-decoration:none;flex-wrap:wrap}
a.row:hover{background:var(--tint)}
.row-main{display:flex;flex-direction:column;min-width:0}
.row-main .muted{font-size:.88rem;overflow-wrap:anywhere}
.empty{padding:14px;text-align:center}
.menu-list{list-style:none;padding:0;margin:0 0 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.menu-list li+li{border-top:1px solid var(--line)}
.menu-list a{display:block;padding:14px 16px;font-weight:600;text-decoration:none;min-height:48px}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}
.facts dt{font-weight:600;color:var(--muted)}.facts dd{margin:0;overflow-wrap:anywhere}
.notes{background:var(--tint);padding:10px 12px;border-radius:10px}
.user-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:12px 14px}
.user-row.off{opacity:.65}
.user-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pager{display:flex;gap:12px;align-items:center;justify-content:center;margin:16px 0}
.scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:12px 0}
table{border-collapse:collapse;width:100%;min-width:640px;font-size:.92rem}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
th{background:var(--tint);font-weight:600}
tr:last-child td{border-bottom:0}
.steps{padding-left:1.2em}.steps li{margin:.5em 0}

/* Pastilles (la couleur n'est jamais seule : toujours un texte) */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.78rem;font-weight:600;border:1.5px solid;line-height:1.5}
.c1{background:#DCE8FA;color:#0F2A55;border-color:#7FA3DE}.c2{background:#D9F0DD;color:#14401D;border-color:#63B27A}
.c3{background:#FBEFC2;color:#4D3A00;border-color:#D9B63A}.c4{background:#FBDADA;color:#5C0F0F;border-color:#E27A7A}
.c5{background:#E9DDF8;color:#3A1766;border-color:#A67BD9}.c6{background:#FCE3CC;color:#5A2A00;border-color:#E69A55}
.c7{background:#FADDEB;color:#5C1138;border-color:#DC7FAD}.c8{background:#E5E9F0;color:#26324A;border-color:#AEB8CA}

.chips.pick .chip-opt{flex-direction:row;font-weight:400}
.chip-opt{position:relative;cursor:pointer;min-height:36px;display:inline-flex;align-items:center}
.chip-opt input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.chip-opt .chip{opacity:.55;border-style:dashed;padding:5px 12px;font-size:.85rem}
.chip-opt input:checked+.chip{opacity:1;border-style:solid;box-shadow:0 0 0 2px var(--primary)}
.chip-opt input:focus-visible+.chip{outline:3px solid var(--primary-2);outline-offset:2px}
.stage-badge{display:inline-block;background:var(--primary);color:var(--on-primary);font-size:.78rem;font-weight:600;border-radius:8px;padding:2px 10px}

/* Pipeline */
.stage-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;margin-bottom:6px;scroll-snap-type:x proximity}
.board-nav .nav-arrow,.col-toggle{display:none}
.stage-tab{flex:0 0 auto;scroll-snap-align:start;min-height:44px;padding:0 14px;border-radius:99px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:600 .85rem "Poppins","Public Sans",sans-serif;cursor:pointer;white-space:nowrap}
.stage-tab.on{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.count{display:inline-block;min-width:1.6em;text-align:center;background:var(--tint);color:var(--ink);border-radius:99px;font-size:.75rem;padding:0 6px}
.stage-tab.on .count{background:rgba(255,255,255,.25);color:inherit}
.board .col{display:none}
.board .col.on{display:block}
.col-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.col-head h2{margin:0;font-size:1rem}
.cards{display:flex;flex-direction:column;gap:10px;min-height:60px}
.card-d{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--primary-2);border-radius:10px;padding:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}
.col.end .card-d{border-left-color:var(--muted)}
.card-d.dragging{opacity:.45}
.card-link{color:inherit;text-decoration:none;display:flex;flex-direction:column;gap:2px}
.card-link strong{font-weight:600}
.who{color:var(--muted);font-size:.9rem}
.meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.8rem;color:var(--muted)}
.meta .late{color:var(--danger);font-weight:700}
.next-form .btn{width:100%}
@media (min-width:900px){
  /* Le tableau occupe la hauteur de l'écran : la barre de défilement horizontale est toujours visible, chaque colonne défile seule */
  .board-nav{display:flex;align-items:center;gap:8px;margin-bottom:8px}
  .board-nav .stage-tabs{flex:1;margin:0;padding:2px 0 6px;scrollbar-width:thin}
  .board-nav .nav-arrow{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);color:var(--primary);font:600 1.6rem/1 "Poppins",sans-serif;cursor:pointer}
  .board-nav .nav-arrow:hover{background:var(--tint)}
  .board{display:flex;gap:14px;align-items:stretch;overflow-x:auto;overflow-y:hidden;height:calc(100vh - 300px);min-height:380px;padding-bottom:10px;margin-right:-32px;padding-right:32px;scrollbar-width:auto}
  .board .col,.board .col.on{display:flex;flex-direction:column;flex:0 0 300px;min-height:0;background:var(--tint);border-radius:var(--radius);padding:12px}
  .board .col .cards{overflow-y:auto;flex:1;min-height:0;padding:2px 4px 2px 0;scrollbar-width:thin}
  .col-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;font-size:1rem;line-height:1}
  .col-toggle:hover{color:var(--primary)}
  .board .col.collapsed,.board .col.collapsed.on{flex:0 0 60px;align-items:center;padding:10px 6px}
  .board .col.collapsed .cards,.board .col.collapsed .col-head small{display:none}
  .board .col.collapsed .col-head{flex-direction:column;align-items:center;gap:10px}
  .board .col.collapsed .col-head h2{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.95rem;white-space:nowrap}
  .board .col.over{outline:3px dashed var(--primary-2)}
  .next-form{display:none}
  .card-d[draggable=true]{cursor:grab}
}
.tabs-d{display:flex;gap:6px;overflow-x:auto;margin-bottom:12px;border-bottom:2px solid var(--line)}
.tabs-d a,.tabs-d span{padding:10px 14px;font-weight:600;text-decoration:none;white-space:nowrap;color:var(--muted);min-height:44px;display:inline-flex;align-items:center}
.tabs-d a{color:var(--primary)}.tabs-d a.on{box-shadow:inset 0 -3px 0 var(--primary)}
.tabs-d .soon{opacity:.55;cursor:default}
.timeline{list-style:none;padding:0;margin:14px 0 0;border-left:3px solid var(--line)}
.timeline li{padding:0 0 14px 14px;position:relative}
.timeline li::before{content:"";position:absolute;left:-8px;top:6px;width:13px;height:13px;border-radius:50%;background:var(--primary-2);border:2px solid var(--surface)}
.timeline .when{display:block;font-size:.8rem;color:var(--muted)}
.timeline p{margin:2px 0 0;overflow-wrap:anywhere}
.contact-line{margin:0}

/* Pages sans menu (connexion, installation, formulaire) */
body.guest .main{max-width:none;padding:24px 16px}
.auth{max-width:420px;margin:6vh auto 0;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:var(--shadow)}
.auth.wide{max-width:680px}
.auth h1{margin-bottom:6px}
body.embed .main{padding:8px}
body.embed .auth{margin:0 auto;border:0;box-shadow:none;background:transparent;max-width:none}

/* Texte repris de Deck */
.md{overflow-wrap:anywhere}.md p{margin:.15em 0}.md ul{margin:.3em 0;padding-left:1.2em}.md br{display:block;content:"";margin:.3em 0}
.card-inset{background:var(--tint);border-radius:10px;padding:10px 14px}
.plain{list-style:disc;padding-left:1.2em}.plain li{margin:.2em 0}
.late{color:var(--danger);font-weight:600}
.checks{display:flex;flex-wrap:wrap;gap:8px 18px}
fieldset.owners{grid-column:1/-1}
.assignees{font-weight:600;color:var(--primary)}
.user-edit{flex-basis:100%;margin-top:6px}
.user-edit summary{cursor:pointer;font-weight:600;color:var(--primary-2);min-height:36px;display:flex;align-items:center}
.user-edit form{margin-top:8px}

/* Photos de profil */
.avatars{display:inline-flex;align-items:center;margin-left:auto;padding-left:8px}
.avatars .avatar+.avatar{margin-left:-9px}
.avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:28px;height:28px;border-radius:50%;overflow:hidden;border:2px solid var(--surface);font:600 .72rem/1 "Poppins","Public Sans",sans-serif;box-shadow:0 0 0 1px var(--line);vertical-align:middle}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.avatar.big{width:40px;height:40px;font-size:.9rem}
.a1{background:#DCE8FA;color:#0F2A55}.a2{background:#D9F0DD;color:#14401D}.a3{background:#FBEFC2;color:#4D3A00}.a4{background:#FBDADA;color:#5C0F0F}
.a5{background:#E9DDF8;color:#3A1766}.a6{background:#FCE3CC;color:#5A2A00}.a7{background:#FADDEB;color:#5C1138}.a8{background:#E5E9F0;color:#26324A}

.with-avatar{display:flex;align-items:center;gap:10px}
.side-foot .me{display:flex;align-items:center;gap:8px;text-decoration:none}
.side-foot .avatar{border-color:rgba(255,255,255,.7)}
.photo-form{flex-wrap:wrap;gap:8px}
label.file{font-weight:600}
/* boutons ronds (cases d'option) : même taille que les cases à cocher */
input[type=radio]{width:22px;height:22px;min-height:0;accent-color:var(--primary);flex:0 0 auto}
label.check{justify-content:flex-start}

/* ===== Devis ===== */
.row-end{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.amount{font-weight:600;white-space:nowrap}
.inner{padding:0}.nowrap{white-space:nowrap}td.num,th.num{text-align:right}
summary.h2s{cursor:pointer;font:600 1.05rem "Poppins","Public Sans",sans-serif;color:var(--primary);min-height:36px;display:flex;align-items:center}
.dlines{display:flex;flex-direction:column;gap:10px}
.dl-row{display:grid;gap:8px 10px;grid-template-columns:1fr 1fr;align-items:end;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.dl-row.titre{background:var(--tint);border-color:var(--primary-2)}
.dl-row .dl-num{grid-column:1/-1;font-weight:700;color:var(--primary-2);font-size:.9rem}
.dl-row .dl-desc{grid-column:1/-1}
.dl-row .lbl{font-weight:600;font-size:.78rem;color:var(--muted)}
.dl-row textarea{min-height:44px;resize:none;overflow:hidden}
.dl-total{display:flex;flex-direction:column;gap:2px;justify-content:flex-end}.dl-total .val{font-weight:700;min-height:44px;display:flex;align-items:center}
.dl-tools{display:flex;gap:6px;grid-column:1/-1;justify-content:flex-end}
button.tool{min-width:44px;min-height:44px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);color:var(--primary);font-size:1.1rem;cursor:pointer}
button.tool:hover{background:var(--tint)}
.totals{margin-top:14px;margin-left:auto;max-width:420px;display:flex;flex-direction:column;gap:4px}
.totals>div{display:flex;justify-content:space-between;gap:16px}
.totals .sub{color:var(--muted);font-size:.9rem}
.totals .ttc{background:var(--primary);color:var(--on-primary);padding:8px 12px;border-radius:8px;font-size:1.05rem}
.dac-row{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:10px;margin-bottom:10px}
.dac-desc,.dac-base{grid-column:1/-1}.dac-calc{font-weight:700;color:var(--primary);display:flex;align-items:center;min-height:44px}
.dac-row .lbl{font-weight:600;font-size:.78rem;color:var(--muted)}
.sticky-actions{position:sticky;bottom:calc(var(--tabbar) + env(safe-area-inset-bottom,0px));z-index:5;display:flex;gap:10px;flex-wrap:wrap;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 -4px 16px rgba(20,32,58,.1)}
@media (min-width:900px){
  .dl-row{grid-template-columns:44px minmax(220px,1fr) 80px 96px 112px 100px 120px auto;align-items:start}
  .dl-row .dl-num{grid-column:auto;padding-top:26px}.dl-row .dl-desc{grid-column:auto}.dl-row.titre{grid-template-columns:44px 1fr 160px auto}
  .dl-row.titre .dl-total{grid-column:auto}.dl-tools{grid-column:auto;align-self:end}
  .dl-row .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  #lines::before{content:"N°";display:none}
  .dac-row{grid-template-columns:minmax(200px,1fr) 120px 110px 260px 150px auto}.dac-desc,.dac-base{grid-column:auto}
  .dac-row .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .sticky-actions{bottom:12px}
  .dl-total .val{justify-content:flex-end}
}

.dl-head{display:none}
@media (min-width:900px){
  .dl-head{display:grid;grid-template-columns:44px minmax(220px,1fr) 80px 96px 112px 100px 120px auto;gap:8px 10px;padding:0 10px 6px;font-weight:600;font-size:.8rem;color:var(--muted)}
  .dl-head span:nth-child(n+7){text-align:right}
}

/* Logo */
.brand-logo{width:40px;height:40px;border-radius:50%;background:#fff;object-fit:contain;flex:0 0 auto}
.auth-logo{display:block;width:120px;height:120px;margin:0 auto 8px;object-fit:contain}

/* ===== Agenda ===== */
.agenda-nav{display:grid;gap:10px;margin-bottom:12px}
.agenda-month{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}
.agenda-nav .month{font:600 1.15rem "Poppins",sans-serif;color:var(--primary);text-align:center;text-transform:capitalize;min-width:0}
.agenda-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:8px}.agenda-shortcuts .btn{text-align:center;justify-content:center}
.agenda-filters{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between}.agenda-filters select{width:auto;min-width:11em}
.cal-past{margin:0 0 12px;text-align:center}
@media (min-width:900px){.agenda-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.agenda-month{display:flex;gap:8px}.agenda-nav .month{min-width:9.5em}.agenda-shortcuts{display:flex}.agenda-filters{margin-left:auto}}
.cal{display:none}
.cal-list .day{margin-bottom:14px}
.cal-list .day h2{font-size:1rem;margin:0 0 6px;padding:6px 10px;background:var(--tint);border-radius:8px;text-transform:capitalize}
.cal-list .day.today h2{background:var(--primary);color:var(--on-primary)}
.ev-row{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--primary-2);border-radius:10px;margin-bottom:6px;text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;padding:10px 12px;min-height:56px}
.ev-row.act{border-left-color:var(--muted);border-style:dashed;border-left-style:dashed}
.ev-row .when{flex:0 0 5.6em;font-weight:600;color:var(--primary);font-size:.88rem}
.ev-row .avatars{margin-left:auto}
.agenda-foot{margin-top:18px;font-size:.92rem}
@media (min-width:900px){
  .cal-list{display:none}
  .cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
  .cal-dow{padding:8px;text-align:center;font-weight:600;background:var(--tint);color:var(--muted);font-size:.85rem;text-transform:capitalize}
  .cal-cell{min-height:116px;border-top:1px solid var(--line);border-left:1px solid var(--line);padding:4px;display:flex;flex-direction:column;gap:2px;min-width:0}
  .cal-cell:nth-child(7n+8){border-left:0}
  .cal-cell.out{background:var(--bg);color:var(--muted)}
  .cal-cell.today{box-shadow:inset 0 0 0 2px var(--primary-2)}
  .cal-num{align-self:flex-start;font-weight:700;text-decoration:none;color:inherit;padding:2px 8px;border-radius:99px;min-width:28px;text-align:center}
  .cal-cell.today .cal-num{background:var(--primary);color:var(--on-primary)}
  .cal-num:hover{background:var(--tint)}
  .ev{display:block;font-size:.8rem;line-height:1.25;padding:2px 6px;border-radius:6px;background:var(--tint);border-left:3px solid var(--primary-2);color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ev:hover{background:var(--line)}.ev .t{font-weight:700;color:var(--primary)}
  .ev.act{border-left-color:var(--muted);border-left-style:dashed;background:transparent;color:var(--muted)}
  .ev.prive{border-left-color:var(--danger)}
  .more{font-size:.75rem;color:var(--muted);padding-left:6px}
}

/* Bouton « + » flottant (téléphone) */
.fab{position:fixed;right:16px;bottom:calc(var(--tabbar) + 16px + env(safe-area-inset-bottom,0px));z-index:15;width:56px;height:56px;border-radius:50%;background:var(--primary);color:var(--on-primary);display:flex;align-items:center;justify-content:center;font:600 2rem/1 "Poppins",sans-serif;text-decoration:none;box-shadow:0 4px 14px rgba(20,32,58,.35)}
@media (min-width:900px){.fab{display:none}}
.install-card h2{margin-top:0}

/* Disponibilités et planning d'équipe */
.conflicts{min-height:1.5em}.conflicts ul{margin:.3em 0 0;padding-left:1.2em}.conflicts .free{color:var(--ok);font-weight:600;margin:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.team-grid{display:none}
.team-list .card{margin-bottom:10px}.team-list h2{margin:0 0 6px}.free{color:var(--ok);font-weight:600;margin:0}
.busy-row{display:flex;gap:10px;margin:.3em 0}.busy-row strong{flex:0 0 7.5em;color:var(--primary)}
@media (min-width:900px){
  .team-list{display:none}.team-grid{display:block}
  .team-grid table{min-width:900px;table-layout:fixed}
  .team-grid th.who{width:210px;text-align:left;background:var(--surface);position:sticky;left:0;white-space:nowrap}
  .team-grid th.hr{text-align:center;font-size:.8rem;padding:8px 2px}
  .team-grid td.slot{height:44px;padding:0;border-left:1px solid var(--line);background:var(--surface)}
  .team-grid td.slot.busy{background:var(--primary-2);border-left-color:var(--surface);cursor:help}
}

.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.4}

/* ===== Fichiers ===== */
.tiles{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:16px}
@media (min-width:640px){.tiles{grid-template-columns:repeat(2,1fr)}}@media (min-width:1000px){.tiles{grid-template-columns:repeat(3,1fr)}}
.tile{display:flex;flex-direction:column;gap:2px;padding:16px;border:1px solid var(--line);border-left:5px solid var(--primary-2);border-radius:12px;background:var(--surface);color:inherit;text-decoration:none;min-height:72px;justify-content:center}
.tile:hover{background:var(--tint)}.tile strong{font-family:"Poppins",sans-serif;color:var(--primary)}
.crumbs{font-size:.9rem;color:var(--muted);overflow-wrap:anywhere}.crumbs a{color:var(--primary-2)}
.drive-list{margin-top:12px}
.drive-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:space-between}
.drive-item .row{flex:1 1 280px;min-width:0}
.ico{flex:0 0 48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--tint);color:var(--primary);font-weight:700;font-size:.72rem;text-align:center;line-height:1.1;padding:2px}
.ico.folder{font-size:1.5rem}
img.thumb{flex:0 0 48px;width:48px;height:48px;object-fit:cover;border-radius:10px;background:var(--tint)}
.row .ico+.row-main,.row img.thumb+.row-main{margin-left:12px}
.menu{position:relative;margin:0 10px 0 0}
.menu summary{list-style:none;cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;border:1.5px solid var(--line);font-size:1.3rem;color:var(--primary)}
.menu summary::-webkit-details-marker{display:none}.menu[open] summary{background:var(--tint)}
.menu-body{position:absolute;right:0;top:50px;z-index:10;display:flex;flex-direction:column;gap:8px;min-width:min(86vw,360px);padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(20,32,58,.22)}
.menu-body .inline{display:flex;flex-wrap:wrap;gap:6px}.menu-body .inline input,.menu-body .inline select{flex:1 1 160px;min-width:0}
.inline-details{margin-top:10px}.inline-details summary{cursor:pointer;font-weight:600;color:var(--primary-2);min-height:36px;display:flex;align-items:center}
.up-progress{display:flex;flex-direction:column;gap:6px}.up-row{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;padding:6px 8px;border:1px solid var(--line);border-radius:8px}
.up-row progress{width:100%;height:8px}.up-state.ok{color:var(--ok);font-weight:600}.up-state.bad{color:var(--danger);font-weight:600}.up-name{overflow-wrap:anywhere;font-size:.9rem}
#drop.dragging{outline:3px dashed var(--primary-2);background:var(--tint)}
.public-share{text-align:left}.public-share .auth-logo{margin-bottom:12px}
@media (min-width:900px){.up-row{grid-template-columns:2fr 1fr 1fr;align-items:center}}

/* Menu latéral : défile quand il est long ; l'administration est repliable */
@media (min-width:900px){
  .side nav{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.35) transparent;margin-right:-6px;padding-right:6px}
  .side-foot{flex:0 0 auto;padding-top:10px}
}
.nav-group>summary{list-style:none;cursor:pointer}.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary .chev{margin-left:auto;opacity:.8;transition:transform .15s}.nav-group[open]>summary .chev{transform:rotate(180deg)}
.nav-sub{display:flex;flex-direction:column;gap:2px;padding-left:10px;margin-top:2px;border-left:2px solid rgba(255,255,255,.18)}

pre.log{white-space:pre-wrap;word-break:break-word;max-height:60vh;overflow:auto;background:var(--tint);padding:10px;border-radius:8px}

/* Suivi des dossiers */
.suivi-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.suivi-filters select,.suivi-filters input{flex:1 1 150px;min-width:0}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:12px}
.kpi{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-left:5px solid var(--primary-2);border-radius:12px;background:var(--surface)}
.kpi strong{font:600 1.35rem "Poppins",sans-serif;color:var(--primary)}.kpi.warn{border-left-color:var(--danger)}.kpi.warn strong{color:var(--danger)}
.suivi-sum .card{margin:0}.suivi-sum h2{margin-top:0}
.suivi-table th[scope=row]{text-align:left;font-weight:600}.suivi-table meter{width:70px;height:10px;vertical-align:middle}
.suivi-table .late{color:var(--danger);font-weight:700}td.num,th.num{text-align:right;white-space:nowrap}

/* Comparatif des devis */
.bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.bar .grow{flex:1 1 220px}
.warn{background:#fdf1dc;color:#7a4a00;border-radius:8px;padding:8px 12px;margin:8px 0}.notice{background:var(--tint);border-radius:8px;padding:8px 12px}
.ref{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.ref .n{flex:1 1 240px;display:flex;flex-direction:column}.ref .n small{color:var(--muted)}
.nocov{margin-top:8px;padding:8px 12px;background:#fdf1dc;border-radius:8px}
.lot{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin:0 0 14px;overflow:visible}
.lot-h{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;padding:10px 14px;background:var(--tint);border-radius:12px 12px 0 0}.lot-h h3{margin:0;color:var(--primary)}.lot-h h3 small{margin-left:8px;font-weight:400;color:var(--muted)}
.lot-h .r{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.lot.none .lot-h{background:#fdf1dc}
.dv{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:10px 14px;border-top:1px solid var(--line);position:relative}.dv.ret{background:#eef8f1}.dv.old{opacity:.8}
.dv .who{display:flex;flex-direction:column;gap:2px;min-width:0}.dv .who small{color:var(--muted)}.dv .acts{display:flex;gap:6px;align-items:center;position:relative}
.dv input,.ref input.mt,.lot-h input{min-width:0;width:100%}.dv .mtf,.dv .lotf{display:flex;flex-direction:column;gap:2px}.dv label{font-size:.75rem;color:var(--muted)}
input.vide{background:#fff8e1}.pend{color:#9a5b00}.bad{color:var(--danger);font-weight:600}.okk{color:var(--ok);font-weight:600}.perime{color:var(--danger)}
.best{color:var(--ok);font-weight:700}.more{color:var(--danger)}.mg{font-size:.8rem;color:var(--ok)}.mg.neg,.neg{color:var(--danger)}
.menu-pop{position:absolute;right:0;top:100%;z-index:20;display:flex;flex-direction:column;gap:2px;min-width:260px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(20,32,58,.22);padding:6px}
.menu-pop button{text-align:left;background:none;border:0;padding:10px;border-radius:8px;cursor:pointer;font:inherit}.menu-pop button:hover{background:var(--tint)}
.fold{background:none;border:0;cursor:pointer;font:600 1rem inherit;color:var(--primary);padding:8px 0}
.sum{position:sticky;bottom:calc(var(--tabbar) + 8px);z-index:12;display:flex;flex-wrap:wrap;gap:20px;align-items:center;padding:12px 16px;background:var(--primary);color:var(--on-primary);border-radius:12px;margin-top:14px}
.sum .k{font-size:.78rem;opacity:.85}.sum .v{font:600 1.25rem "Poppins",sans-serif}.sum .v.neg{color:#ffb3a8}.sum .note{flex:1 1 200px;opacity:.9;font-size:.9rem}
@media (min-width:900px){.dv{grid-template-columns:auto minmax(0,1.6fr) minmax(0,1.1fr) minmax(0,.9fr) 90px auto;align-items:center}.sum{bottom:0}}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:var(--primary);color:var(--on-primary);padding:10px 16px;border-radius:10px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:50}.toast.on{opacity:1}.toast.err{background:var(--danger)}

/* Frais kilométriques */
.ik-form{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:8px}.ik-form label{display:flex;flex-direction:column;gap:4px;font-size:.9rem}.ik-form label.check{flex-direction:row;align-items:center;gap:8px}
.ik-form input,.ik-form select{width:100%;min-width:0}.ik-form .actions{display:flex;gap:8px;flex-wrap:wrap}
@media (min-width:760px){.ik-form{grid-template-columns:repeat(4,1fr);align-items:end}.ik-form .wide{grid-column:span 2}.ik-form .actions.wide{grid-column:1 / -1}}
td.acts{white-space:nowrap;display:flex;gap:6px;align-items:center}

/* Messagerie */
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.mail-row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.mail-row .row-main{min-width:0}.mail-subj{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.mail-row.unread strong,.mail-row.unread .mail-subj{font-weight:700;color:var(--ink)}.mail-date{white-space:nowrap;font-size:.8rem}
.mail-frame{width:100%;min-height:62vh;border:1px solid var(--line);border-radius:10px;background:#fff}
dl.meta{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:0 0 10px}dl.meta dt{color:var(--muted)}dl.meta dd{margin:0;word-break:break-word}
.pager{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:10px}
.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}.inline-form select{min-width:0;flex:1 1 200px}
.sr{position:absolute;left:-9999px}.badge{display:inline-block;min-width:1.3em;padding:0 .4em;margin-left:.4em;border-radius:999px;background:var(--danger);color:#fff;font-size:.72rem;line-height:1.5;text-align:center}

/* Plus : menu « Autre » déroulant */
details.more-menu{margin:10px 0}details.more-menu>summary{cursor:pointer;list-style:none;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-weight:600;color:var(--primary)}
details.more-menu>summary::after{content:" ▾";float:right}details.more-menu[open]>summary::after{content:" ▴"}details.more-menu[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0}
details.more-menu>ul{margin-top:0}

/* Éditeur de messages */
.rte-wrap{border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}
.rte-bar{display:flex;gap:4px;flex-wrap:wrap;padding:6px;border-bottom:1px solid var(--line);background:var(--tint);overflow-x:auto}
.rte-bar button,.rte-bar select{min-height:36px;padding:4px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.rte-bar button:hover{background:var(--tint)}
.rte{min-height:220px;padding:12px;outline:none;line-height:1.55}.rte:focus{box-shadow:inset 0 0 0 2px var(--primary-2)}
.rte blockquote{margin:.5em 0;padding-left:.8em;border-left:3px solid var(--line);color:var(--muted)}
[data-sig-editor] .rte{min-height:110px}
.sig-preview{padding:10px 12px;border:1px dashed var(--line);border-radius:10px;background:var(--bg)}.sig-box{margin-top:6px;font-size:.92rem}.sig-box img,.sig-current img{max-width:100%;height:auto;display:block;margin-top:6px}
.sig-current{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.field>.label{font-size:.9rem}

.diag h3{margin:14px 0 6px;font-size:1rem;color:var(--primary)}.diag-list{list-style:none;margin:0;padding:0}.diag-list li{padding:6px 0;border-top:1px solid var(--line)}
.diag-list .mark{display:inline-block;width:1.4em;font-weight:700}.diag-list .ok .mark{color:var(--ok)}.diag-list .ko .mark{color:var(--danger)}.diag-list .ko strong{color:var(--danger)}

/* Messagerie : menu à gauche, messages à droite */
.mail-app{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
.mail-nav>summary{cursor:pointer;list-style:none;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-weight:600;color:var(--primary)}
.mail-nav>summary::after{content:" ▾";float:right}.mail-nav[open]>summary{margin-bottom:10px}
.mail-nav .mail-compose{display:flex;width:100%;justify-content:center;gap:8px;align-items:center;margin-bottom:10px}.mail-nav .mail-compose svg{width:18px;height:18px}
.mail-accts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.mail-acct{padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-size:.82rem;color:var(--ink);background:var(--surface)}.mail-acct.on{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.mail-folders{display:flex;flex-direction:column;gap:2px}
.mf{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:var(--ink);text-decoration:none}.mf svg{width:19px;height:19px;flex:none;color:var(--primary-2)}.mf:hover{background:var(--tint)}
.mf.on{background:var(--tint);font-weight:700;color:var(--primary)}.mf .mf-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mf .count{min-width:1.5em;padding:0 .45em;border-radius:999px;background:var(--line);color:var(--ink);font-size:.76rem;line-height:1.6;text-align:center}.mf .count.hot{background:var(--primary);color:var(--on-primary)}
.mf-set{margin-top:12px;border-top:1px solid var(--line);border-radius:0 0 10px 10px;color:var(--muted)}
.mail-main{min-width:0}.mail-listhead{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:10px}.mail-listhead h1{margin:0;font-size:1.3rem}
.mail-search{display:flex;gap:8px;align-items:center}.mail-search input[type=search]{min-width:0;width:100%}
.mail-fab{position:fixed;right:16px;bottom:calc(var(--tabbar) + 16px);width:54px;height:54px;border-radius:50%;background:var(--primary);color:var(--on-primary);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(20,32,58,.35);z-index:15}.mail-fab svg{width:24px;height:24px}
.mail-toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.mail-toolbar .tb-sep{width:1px;align-self:stretch;background:var(--line);margin:0 4px}.tb-move{display:flex;gap:6px;align-items:center;margin-left:auto}.tb-move select{max-width:11rem}
.mail-title{font-size:1.25rem;margin:0 0 8px;word-break:break-word}
.mail-atts{display:flex;flex-direction:column;gap:6px;margin:10px 0}.mail-atts .att{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.mail-atts .att a{display:inline-flex;gap:6px;align-items:center}.mail-atts svg{width:16px;height:16px}.att-save{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.att-save select{max-width:18rem}
.client-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.client-chip{display:inline-flex;align-items:center;gap:6px}.client-chip a{color:inherit}.chip-x{border:0;background:none;color:inherit;font-size:1.1rem;line-height:1;cursor:pointer;padding:0 2px}
.chip.suggest{border:1px dashed var(--primary-2);background:var(--surface);color:var(--primary);cursor:pointer;font:inherit;font-size:.82rem;padding:3px 10px;border-radius:999px}
.client-picker{position:relative;display:inline-flex;gap:6px;align-items:center}.client-picker .cp-q{min-width:12rem}
.cp-results{position:absolute;left:0;top:100%;z-index:30;min-width:18rem;max-width:90vw;margin:4px 0 0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(20,32,58,.22)}
.cp-results li{padding:8px 10px;border-radius:8px;cursor:pointer}.cp-results li:hover,.cp-results li:focus{background:var(--tint);outline:none}
.compose-picker{display:flex;width:100%}.compose-picker .cp-q{flex:1}
.img-note{margin:0 0 8px;font-size:.85rem}
@media (min-width:900px){
  .mail-app{grid-template-columns:240px minmax(0,1fr)}
  .mail-nav>summary{display:none}.mail-nav{position:sticky;top:12px}
  .mail-fab{display:none}
}

/* Ranger les messages */
.mf-more>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:var(--ink)}.mf-more>summary:hover{background:var(--tint)}.mf-more>summary svg{width:19px;height:19px;flex:none;color:var(--primary-2)}
.mf-more>summary::after{content:"▾";margin-left:6px;color:var(--muted)}.mf-more[open]>summary::after{content:"▴"}.mf-more>summary .mf-name{flex:1}.mf-more>summary .count{min-width:1.5em;padding:0 .45em;border-radius:999px;background:var(--line);font-size:.76rem;line-height:1.6;text-align:center}
.mf-more .mf{padding-left:18px}.mf[data-depth="1"]{padding-left:36px}.mf[data-depth="2"]{padding-left:54px}.mf[data-depth="3"]{padding-left:72px}
.mf.drop-ok{outline:2px dashed var(--primary-2);outline-offset:-2px;background:var(--tint)}
.mail-item{display:flex;align-items:stretch}.mail-item .mail-row{flex:1;min-width:0}.mail-sel{display:flex;align-items:center;padding:0 4px 0 12px;cursor:pointer}.mail-sel input{width:18px;height:18px}
.mail-item.sel{background:var(--tint)}.mail-item.dragging{opacity:.45}.mail-item[draggable=true]{cursor:grab}
.bulk-bar{position:sticky;top:8px;z-index:14;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 12px;margin-bottom:8px;border-radius:12px;background:var(--primary);color:var(--on-primary)}
.bulk-bar .btn,.bulk-bar select{min-height:34px}.bulk-bar select{max-width:14rem}.bulk-bar .bulk-n{font-weight:600;margin-right:auto}
.drag-hint{margin:0 0 8px;font-size:.84rem}
.mail-toast{position:fixed;left:50%;bottom:calc(var(--tabbar) + 78px);transform:translateX(-50%);max-width:92vw;background:var(--primary);color:var(--on-primary);padding:10px 16px;border-radius:10px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:60}.mail-toast.on{opacity:1}.mail-toast.err{background:var(--danger)}
@media (max-width:899px){.drag-hint{display:none}}
@media (min-width:900px){.mail-toast{bottom:24px}}

/* Mes dossiers : création */
.mf-new{display:flex;flex-direction:column;gap:6px;margin:8px 6px 4px;padding:8px;border:1px dashed var(--line);border-radius:10px}.mf-new input,.mf-new select{width:100%;min-width:0;font-size:.88rem}
.mf-manage{font-size:.86rem;color:var(--muted)}
.folder-tree .ft-row[data-depth="1"]{padding-left:22px}.folder-tree .ft-row[data-depth="2"]{padding-left:44px}.folder-tree .ft-row[data-depth="3"]{padding-left:66px}
.ft-rename{display:flex;gap:6px;align-items:center}.ft-rename input{min-width:8rem;max-width:14rem}

.sel-all{display:flex;gap:8px;align-items:center;margin:0 0 6px;padding:2px 12px;font-size:.88rem;cursor:pointer}.sel-all input{width:18px;height:18px}
.btn.danger{background:var(--danger);color:#fff;border-color:var(--danger)}

/* Talk */
.talk-app{display:grid;grid-template-columns:minmax(0,1fr);gap:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden;min-height:68vh}
.talk-rooms{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line)}
.talk-top{display:flex;flex-direction:column;gap:8px;padding:10px;border-bottom:1px solid var(--line)}.talk-search input{width:100%}
.talk-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}
.tr{display:flex;gap:10px;align-items:center;padding:10px 12px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}.tr:hover{background:var(--tint)}.tr.on{background:var(--tint);box-shadow:inset 3px 0 0 var(--primary)}
.tr-main{flex:1;min-width:0;display:flex;flex-direction:column}.tr-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tr.unread .tr-main strong,.tr.unread .tr-prev{font-weight:700;color:var(--ink)}
.tr-prev{color:var(--muted);font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tr-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:.76rem;color:var(--muted)}
.tr .count{min-width:1.5em;padding:0 .45em;border-radius:999px;background:var(--primary);color:var(--on-primary);font-size:.76rem;line-height:1.6;text-align:center}.tr .count.hot{background:var(--danger)}
.avatar.grp{background:var(--primary-2);color:#fff}
.talk-pane{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}
.talk-empty{padding:28px;margin:auto;max-width:34rem;text-align:center}
.talk-head{display:flex;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}.talk-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.talk-tools{display:flex;gap:6px;flex-wrap:wrap}.talk-back{font-size:1.4rem;padding:0 6px;color:var(--primary)}
.talk-msgs{flex:1;overflow-y:auto;padding:12px 14px;min-height:46vh;max-height:68vh;display:flex;flex-direction:column;gap:6px;scroll-behavior:auto}
.talk-older{align-self:center}.talk-none{text-align:center;margin:auto}
.tm-day{text-align:center;margin:10px 0 4px}.tm-day span{display:inline-block;padding:2px 12px;border-radius:999px;background:var(--tint);color:var(--muted);font-size:.78rem}
.tm{display:flex;gap:8px;align-items:flex-start;max-width:100%}.tm.own{flex-direction:row-reverse}.tm-av{flex:none}
.tm-body{max-width:min(34rem,82%);background:var(--tint);border-radius:14px;padding:6px 10px;position:relative}.tm.own .tm-body{background:#E6EDF8}
.tm.mentioned .tm-body{box-shadow:0 0 0 2px var(--primary-2)}.tm.flash .tm-body{box-shadow:0 0 0 3px var(--primary)}
.tm-meta{font-size:.78rem;color:var(--muted);display:flex;gap:6px;align-items:baseline}.tm-meta strong{color:var(--ink)}.tm.own .tm-meta strong{display:none}
.tm-text{word-wrap:break-word;overflow-wrap:anywhere;line-height:1.45}.tm-text a{color:var(--primary-2)}
.mention{background:rgba(46,95,168,.14);color:var(--primary);border-radius:6px;padding:0 3px;font-weight:600}
.tm-reply{display:block;margin:2px 0 4px;padding:2px 8px;border-left:3px solid var(--primary-2);color:var(--muted);font-size:.82rem;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.tm-img img{max-width:240px;max-height:200px;border-radius:10px;display:block}.tm-file{display:inline-flex;gap:6px;align-items:center;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);text-decoration:none}.tm-file svg{width:16px;height:16px}
.tm-reacts{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.tm-reacts:empty{display:none}.react{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:0 8px;font-size:.82rem;cursor:pointer}.react.mine{border-color:var(--primary-2);background:rgba(46,95,168,.12)}
.tm-actions{display:none;position:absolute;top:-14px;right:6px;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:2px}.tm:hover .tm-actions,.tm:focus-within .tm-actions{display:flex}
.tm-actions button{border:0;background:none;color:var(--primary);font-size:.78rem;padding:3px 6px;border-radius:6px;cursor:pointer}.tm-actions button:hover{background:var(--tint)}
.react-picker{position:absolute;top:14px;right:0;z-index:20;display:flex;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:4px;box-shadow:0 8px 24px rgba(20,32,58,.22)}.react-picker button{border:0;background:none;font-size:1.2rem;cursor:pointer;padding:2px 4px;border-radius:6px}
.tm.sys{justify-content:center;color:var(--muted);font-size:.82rem;font-style:italic}.tm.deleted .tm-body{background:transparent;border:1px dashed var(--line)}
.tm-edit{display:flex;flex-direction:column;gap:6px}.tm-edit textarea{width:100%}
.talk-below{position:absolute;right:16px;bottom:96px;z-index:5;box-shadow:0 6px 18px rgba(20,32,58,.3)}
.talk-composer{border-top:1px solid var(--line);padding:8px 10px;position:relative}.talk-row{display:flex;gap:8px;align-items:flex-end}.talk-row textarea{flex:1;min-width:0;resize:none;max-height:160px}
.talk-replybar{display:flex;justify-content:space-between;gap:8px;padding:4px 8px;margin-bottom:6px;border-left:3px solid var(--primary-2);background:var(--tint);border-radius:6px;font-size:.84rem}
.talk-attach-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.talk-attach-list:empty{display:none}
.talk-mentions{position:absolute;left:56px;bottom:100%;z-index:25;list-style:none;margin:0 0 4px;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(20,32,58,.22);min-width:10rem}.talk-mentions li{padding:6px 10px;border-radius:8px;cursor:pointer}.talk-mentions li.on,.talk-mentions li:hover{background:var(--tint)}
.talk-err{margin:6px 0 0;color:var(--danger);font-size:.88rem}
.badge.mention{background:var(--danger)}
.danger-text{color:var(--danger)}
@media (max-width:899px){
  .talk-app{border-radius:0;border-left:0;border-right:0;min-height:calc(100vh - 150px)}
  .talk-app.in-room .talk-rooms{display:none}.talk-app:not(.in-room) .talk-pane{display:none}
  .talk-msgs{max-height:none;min-height:50vh}.tm-actions{display:flex;position:static;margin-top:2px;padding:0;border:0;background:none}
  .tm-body{max-width:88%}.talk-composer{position:sticky;bottom:calc(var(--tabbar) + 4px);background:var(--surface)}
}
@media (min-width:900px){
  .talk-app{grid-template-columns:320px minmax(0,1fr);min-height:72vh}.talk-back{display:none}
  .talk-app:not(.in-room) .talk-pane{display:flex}
}

/* Messages lus / non lus : point bleu, fond léger, gras ; les lus sont atténués */
.mail-row{position:relative;padding-left:24px}
.mail-row::before{content:"";position:absolute;left:9px;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;background:transparent}
.mail-row.unread::before{background:var(--primary-2)}
.mail-row.unread{background:rgba(46,95,168,.08)}
.mail-row.read,.mail-row.read .mail-subj{color:var(--muted)}.mail-row.read strong{font-weight:500;color:var(--muted)}
.mail-row.unread strong,.mail-row.unread .mail-subj{font-weight:700;color:var(--ink)}
.mail-date .fl{color:var(--primary-2);font-weight:700}
.mail-pager{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.mail-pager .pg-pos{min-width:4.5rem;text-align:center}.mail-pager .pg-back{margin-left:auto}
.btn.off{opacity:.45;pointer-events:none}
.imp-bar{width:100%;height:14px}

.visio-box{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:rgba(46,95,168,.05)}
.visio-box p{margin:6px 0 0}.visio-link{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.visio-link input{flex:1;min-width:12rem}
.visio-join{display:block;margin:0 0 8px;text-align:center}
/* Fichiers : le nom à gauche, l'icône ou la vignette à droite (à côté du menu « ⋯ ») */
.drive-item .row{flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between}
.drive-item .row .row-main{flex:1 1 0;min-width:0}
.drive-item .row .ico,.drive-item .row img.thumb{margin:0 0 0 12px}
.drive-item .row .ico+.row-main,.drive-item .row img.thumb+.row-main{margin-left:0}
/* Factures de sous-traitants à payer */
.tabs-lite{display:flex;gap:6px 14px;align-items:center;flex-wrap:wrap;margin:8px 0 12px}.tab-lite{padding:6px 12px;border-radius:999px;text-decoration:none;color:var(--ink);background:var(--tint)}.tab-lite.on{background:var(--primary);color:#fff;font-weight:600}.pay-search{display:flex;gap:6px;margin-left:auto}.pay-search input{min-width:14rem}
.pay-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 14px}.pay-totals>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column}.pay-totals strong{font-size:1.4rem}.pay-totals b{font-size:1.05rem}.pay-totals .late{border-color:#c0392b;background:#fdecea}
.pay-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:space-between}.pay-item .row{flex:1 1 320px;min-width:0;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.pay-item.done{opacity:.72}
.pay-amount{display:flex;flex-direction:column;align-items:flex-end;min-width:7rem}.pay-amount small{color:var(--muted)}.pay-when{min-width:9rem;text-align:right}.pay-quick{display:flex;gap:6px;align-items:center;padding:0 10px 8px}.pay-quick input[type=date]{width:auto}
.pay-mode{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.pay-preview{margin:6px 0 0;font-weight:600;color:var(--primary)}.pay-paybox{border-left:5px solid #d69e2e}.pay-paybox.paid{border-left-color:#2f855a}.pay-files{margin:4px 0}
/* Aperçu Word / Excel */
.preview{overflow:auto}.pv-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.pv-tab{border:1px solid var(--line);background:#fff;border-radius:8px;padding:5px 10px;cursor:pointer;font:inherit}.pv-tab.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.pv-body{max-width:100%}.pv-doc{max-width:860px;line-height:1.55}.pv-doc table,.pv-sheet{border-collapse:collapse;margin:8px 0}.pv-doc td,.pv-doc th,.pv-sheet td,.pv-sheet th{border:1px solid #cfd6e4;padding:4px 8px;vertical-align:top}.pv-doc img{max-width:100%;height:auto}
.pv-sheet{font-size:.88rem;white-space:pre-wrap}.pv-sheet tr:first-child td{font-weight:600;background:var(--tint)}.pv-note{margin:8px 0;color:var(--muted)}
/* Facture à payer : formulaire allégé, 2 à 3 colonnes sur ordinateur, 1 seule sur téléphone */
.pay-form{max-width:980px}.pay-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px 16px;align-items:end}
.pay-radios{display:flex;gap:6px 22px;flex-wrap:wrap;margin-bottom:10px}.pay-file{border:2px dashed var(--line);border-radius:12px;padding:12px 14px;background:rgba(46,95,168,.04);font-weight:600}.pay-file input{display:block;margin-top:6px;font-weight:400}
.pay-grid .lbl .muted{font-weight:400}

/* En-tête de page sur téléphone : titre à gauche, bouton à droite, bien alignés */
@media (max-width:899px){.page-head{align-items:center}.page-head h1{font-size:1.45rem;line-height:1.2}}

/* ===== Téléphone : revue d'ensemble (rien ne dépasse de l'écran, lignes plus compactes) ===== */
.card,.scroll,.grid2>*,.mail-main,.talk-pane,.talk-rooms{min-width:0;max-width:100%}
code{overflow-wrap:anywhere}
@media (max-width:899px){
  /* messages : titre plus petit, une seule ligne, case à cocher alignée sur la première ligne */
  .mail-item{align-items:flex-start}
  .mail-sel{align-self:flex-start;padding:11px 0 0 10px}.mail-sel input{width:18px;height:18px;margin:0}
  .mail-row{padding:10px 12px 10px 22px;gap:8px;min-height:0}
  .mail-row::before{top:20px;margin-top:-4.5px}
  .mail-row strong{display:block;font-size:.9rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mail-subj{font-size:.84rem;line-height:1.3}
  .mail-date{font-size:.72rem;margin-top:3px;align-self:flex-start}
  .sel-all{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 8px;justify-content:flex-start;text-align:left;font-size:.88rem}
  .mail-toolbar .tb-sep{display:none}.tb-move{margin-left:0;width:100%;justify-content:flex-start}.tb-move select{flex:0 1 auto;max-width:13rem}
  .sel-all .muted{font-size:.8rem}
  .mail-list,.mail-app ul.list{padding-bottom:72px}
  .mail-frame{min-height:72vh}
}

/* Procès-verbaux de réception */
.pv-form .card,.pv-signform .card{margin-bottom:14px}.pv-models{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}
.pv-model{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface);min-height:48px}.pv-model:has(input:checked){border-color:var(--primary);background:var(--tint)}
.pv-group{margin:14px 0 6px;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--primary-2)}
.pv-point{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 10px;min-width:0}.pv-point legend{padding:0 6px;font-weight:600;line-height:1.35}.pv-v{margin:2px 0 6px;font-size:.84rem}
.pv-n{display:inline-grid;place-items:center;min-width:1.7em;height:1.7em;border-radius:50%;background:var(--primary);color:var(--on-primary);font-size:.8rem;font-weight:700}
.pv-radios{display:flex;flex-wrap:wrap;gap:8px 10px;margin:6px 0 8px}.pv-r{border:1px solid var(--line);border-radius:999px;padding:9px 16px;min-height:44px;display:inline-flex;align-items:center;gap:8px;background:var(--surface)}.pv-r:has(input:checked){border-color:var(--primary);background:var(--primary);color:var(--on-primary);font-weight:700}.pv-r input{width:18px;height:18px}
.pv-savoir{background:var(--tint);border-radius:12px;padding:12px 14px}.pv-savoir ul{margin:6px 0 10px;padding-left:1.2em}
.pv-outcome{border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-height:48px}.pv-outcome:has(input:checked){border-color:var(--primary);background:var(--tint);font-weight:600}.pv-cond{border-left:3px solid var(--primary-2);padding-left:14px;display:grid;gap:10px}
.pv-reserve{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:start;margin-bottom:10px}
.pv-actions{position:sticky;bottom:calc(var(--tabbar) + 8px);background:var(--bg);padding:10px 0;z-index:5;flex-wrap:wrap}
.pv-pads{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.pv-canvas{display:block;width:100%;height:auto;aspect-ratio:5/2;border:2px dashed var(--line);border-radius:12px;background:#fff;touch-action:none;cursor:crosshair;margin:6px 0 8px}
.pv-confirm{margin:6px 0 12px;font-weight:600}.pv-hint{margin-top:6px}.pv-dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 18px}.pv-dl dt{color:var(--muted)}.pv-dl dd{margin:0}
@media (max-width:640px){.pv-reserve{grid-template-columns:minmax(0,1fr)}.pv-dl{grid-template-columns:minmax(0,1fr);gap:0}.pv-dl dd{margin-bottom:8px}}

/* 14/10/2026 : menu des dossiers de mails défilant indépendamment de la liste (ordinateur) */
@media (min-width: 900px){.mail-nav{max-height:calc(100vh - 24px);overflow-y:auto;overscroll-behavior:contain;align-self:start;scrollbar-width:thin}}

/* 14/10/2026 – Menu ⋯ des fichiers : ne plus le couper sous le cadre de la liste */
.drive-list{overflow:visible}
.drive-list>li:first-child{border-radius:var(--radius) var(--radius) 0 0}
.drive-list>li:last-child{border-radius:0 0 var(--radius) var(--radius)}
.menu-body{max-width:min(92vw,420px)}

/* 14/10/2026 – Talk : nouveau message signalé par un bandeau cliquable */
.talk-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--tabbar) + 16px + env(safe-area-inset-bottom,0px));z-index:70;display:flex;flex-direction:column;gap:2px;width:min(92vw,440px);padding:12px 44px 12px 16px;background:var(--primary);color:var(--on-primary);border-radius:12px;box-shadow:0 8px 24px rgba(20,32,58,.35);text-decoration:none}
.talk-toast span{opacity:.92;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.talk-toast-x{position:absolute;top:6px;right:6px;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--on-primary);font-size:1.3rem;cursor:pointer}
@media (min-width:900px){.talk-toast{left:auto;right:24px;transform:none;top:24px;bottom:auto}}
/* 14/10/2026 – Talk sur téléphone : la discussion tient dans l'écran, le dernier message reste visible au-dessus de la zone d'écriture */
@media (max-width:899px){
  body.talk-room .main{padding-bottom:0}
  .talk-app.in-room{display:flex;flex-direction:column;min-height:0;height:var(--talk-h,calc(100dvh - var(--tabbar) - 40px))}
  .talk-app.in-room .talk-pane{flex:1;min-height:0}
  .talk-app.in-room .talk-msgs{flex:1;min-height:0;max-height:none;overflow-y:auto}
  .talk-app.in-room .talk-composer{position:static}
  .talk-app.in-room .talk-below{bottom:84px}
  body.talk-typing .tabbar{display:none}
}

/* 15/10/2026 – Talk sur téléphone : boutons plus petits, Visio et Membres tout en haut, zone d'écriture sur toute la largeur avec 📎 et Envoyer en dessous */
@media (max-width:899px){
  .talk-head{flex-wrap:wrap;gap:6px 8px;padding:6px 10px}
  .talk-tools{order:-1;flex:1 1 100%;justify-content:flex-end;gap:6px}
  .talk-head .btn.small,.talk-composer .btn{min-height:32px;padding:0 10px;font-size:.8rem;border-width:1.5px}
  .talk-composer{padding:6px 8px}
  .talk-row{flex-wrap:wrap;gap:6px;align-items:center}
  .talk-row textarea{order:-1;flex:1 1 100%;min-height:44px}
  .talk-row .talk-attach{flex:0 0 auto}
  .talk-row button[type=submit]{margin-left:auto}
  .talk-app.in-room .talk-below{bottom:104px}
}

/* 15/10/2026 – Talk sur téléphone, en-tête : Visio, Activer les notifications et Membres sur une ligne (sans pictos), puis ← et le nom de la discussion */
.t-ico{margin-right:4px}
@media (max-width:899px){
  .talk-tools{justify-content:space-between;flex-wrap:nowrap}
  .t-ico{display:none}
}

/* 15/10/2026 – PV : état des réserves à l'écran ; zones de signature moins larges sur téléphone pour pouvoir faire défiler la page avec le pouce */
.pv-rc{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:8px}
.pv-rc-ol{list-style:decimal;padding-left:1.4em}
.pv-rc-item{border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--surface);overflow-wrap:anywhere}
.pv-rc-item.is-non{border-left:4px solid #C0392B}
.pv-rc-tag{display:inline-block;font-size:.75rem;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--tint);margin-right:4px}
.pv-rc-item.is-non .pv-rc-tag{background:#C0392B;color:#fff}
.pv-rc-c{display:block;margin-top:4px;color:var(--muted);font-size:.9rem}
@media (max-width:899px){.pv-canvas{width:82%;max-height:34vh}}

/* 16/10/2026 – Mails : pièces jointes cumulées (ordinateur + fichiers clients) */
.mail-att-list{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px}
.mail-att-list li{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:6px 8px 6px 12px;background:var(--surface);min-width:0}
.mail-att-list .ma-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-att-list .ma-size{color:var(--muted);font-size:.85rem;white-space:nowrap}
.mail-att-list .ma-x{min-height:32px;padding:0 10px}
.mail-att-btns{display:flex;flex-wrap:wrap;gap:8px}
.mail-att-pc{position:relative;cursor:pointer;overflow:hidden}
.mail-att-pc input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.mail-att-warn{color:#A12222;font-weight:600;margin:6px 0 0}
.mail-drive{margin-top:10px;padding:12px;display:grid;gap:8px}
.mail-drive-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mail-drive-list{list-style:none;margin:0;padding:0;max-height:50vh;overflow-y:auto;display:grid;gap:4px}
.mail-drive-list button{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:8px 10px;cursor:pointer;font:inherit;color:var(--ink)}
.mail-drive-list button:hover,.mail-drive-list button:focus{background:var(--tint)}
.mail-drive-list button[disabled]{opacity:.55;cursor:default}
.mail-drive-list .md-path{display:block;color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}

/* 16/10/2026 – Fichiers : recherche par nom dans un dossier */
.drive-filter{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.drive-filter input{flex:1;min-width:14rem}

/* 16/10/2026 (v0.39.6) – Pièces jointes depuis les fichiers clients : navigation dans les dossiers */
.mail-drive .md-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px;font-size:.88rem;line-height:1.3}
.mail-drive .md-crumbs[hidden]{display:none}
.mail-drive .md-crumb{border:0;background:none;padding:4px 6px;border-radius:8px;color:var(--primary-2);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.mail-drive .md-crumb:hover,.mail-drive .md-crumb:focus{background:var(--tint)}
.mail-drive .md-crumb-cur{padding:4px 6px;font-weight:700;color:var(--ink)}
.mail-drive .md-crumb-off{padding:4px 6px;color:var(--muted)}
.mail-drive .md-sep{color:var(--muted)}
.mail-drive-list button.md-folder{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--tint);border-color:var(--line)}
.mail-drive-list button.md-folder strong{color:var(--primary);overflow-wrap:anywhere}
.mail-drive-list button.md-folder:hover,.mail-drive-list button.md-folder:focus{background:#D6E2F4}
.mail-drive-list .md-open{flex:none;color:var(--primary-2);font-size:.85rem;font-weight:600}
.mail-drive-list button.md-up{display:block;background:var(--surface);color:var(--primary-2);font-weight:600}
@media (max-width:640px){.mail-drive-list button{padding:12px}.mail-drive .md-crumb{padding:8px}}

/* 16/10/2026 (v0.39.7) – Mails : corbeille à côté de chaque dossier du menu */
.mf-row{display:flex;align-items:center;gap:2px}
.mf-row>.mf{flex:1;min-width:0}
.mf-del{margin:0;flex:none}
.mf-del-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer;opacity:.45}
.mf-del-btn svg{width:17px;height:17px}
.mf-row:hover .mf-del-btn,.mf-del-btn:focus-visible{opacity:1}
.mf-del-btn:hover,.mf-del-btn:focus-visible{background:var(--danger-bg);color:var(--danger)}
@media (hover:none){.mf-del-btn{opacity:.8;width:40px;height:40px}}

/* 16/10/2026 – Fenêtre « Déplacer » (choix espace › dossier › sous-dossier) */
.mv-dialog{width:min(560px,calc(100vw - 24px));max-height:min(86vh,720px);padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);box-shadow:0 12px 40px rgba(20,32,58,.28)}
.mv-dialog[open]{display:flex;flex-direction:column}
.mv-dialog::backdrop{background:rgba(20,32,58,.45)}
.mv-head{display:flex;align-items:center;gap:8px;padding:14px 16px 6px}
.mv-head h2{flex:1;margin:0;font-size:1.05rem;color:var(--primary);overflow-wrap:anywhere}
.mv-x{min-width:44px;min-height:44px;border:0;background:none;font-size:1.2rem;color:var(--muted);cursor:pointer;border-radius:10px}.mv-x:hover{background:var(--tint)}
.mv-crumbs{padding:0 16px 8px}
.mv-filter{width:auto;max-width:none;align-self:stretch;margin:0 16px 8px;min-height:40px;padding:0 12px;border:1.5px solid var(--line);border-radius:10px;font:inherit}
.mv-list{list-style:none;margin:0;padding:0 8px;overflow:auto;flex:1;min-height:120px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mv-list li+li{border-top:1px solid var(--tint)}
.mv-row{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px;background:none;border:0;border-radius:8px;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.mv-row:hover,.mv-row:focus-visible{background:var(--tint)}
.mv-name{flex:1;font-weight:600;overflow-wrap:anywhere}.mv-more{font-size:.82rem;white-space:nowrap}.mv-chev{font-size:1.3rem;color:var(--primary-2)}
.mv-empty{padding:16px 8px}
.mv-foot{padding:10px 16px 14px;display:flex;flex-direction:column;gap:8px}
.mv-dest{margin:0;font-size:.9rem;overflow-wrap:anywhere}
.mv-btns{display:flex;justify-content:flex-end;gap:8px}
.mv-ok[disabled]{opacity:.45;cursor:not-allowed}

/* Pipeline : menu « Déplacer vers… » et zone de dépôt fixe pendant le glissement (v0.39.10) */
.move-to{display:block;margin:0}
.move-to select{width:100%;min-height:44px;padding:0 10px;border:1.5px solid var(--line);border-radius:8px;background:var(--surface);color:var(--primary);font:600 .85rem "Poppins","Public Sans",sans-serif;cursor:pointer}
.move-to select:focus{outline:2px solid var(--primary-2);outline-offset:1px}
.move-to select:disabled{opacity:.6;cursor:wait}
.mv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.drop-dock{position:fixed;left:50%;bottom:18px;transform:translate(-50%,160%);display:flex;gap:12px;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px rgba(20,32,58,.28);z-index:1000;opacity:0;pointer-events:none;transition:transform .15s ease,opacity .15s ease}
.drop-dock.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.drop-target{min-width:190px;min-height:60px;padding:0 20px;display:flex;align-items:center;justify-content:center;text-align:center;border:2px dashed var(--primary-2);border-radius:10px;background:var(--tint);color:var(--primary);font:600 .9rem "Poppins","Public Sans",sans-serif}
.drop-target.over{background:var(--primary);border-style:solid;border-color:var(--primary);color:var(--on-primary)}
.drop-target[hidden]{display:none}
@media (min-width:900px){
  .move-to select{min-height:32px;font-size:.8rem;color:var(--muted)}
  .move-to select:hover{color:var(--primary);border-color:var(--primary-2)}
}
@media (prefers-reduced-motion:reduce){.drop-dock{transition:none}}
.brand-preview{border-radius:12px;background:var(--surface);border:1px solid var(--line);object-fit:contain}
.qr-box{text-align:center;margin:12px 0}.qr-box img{display:block;margin:8px auto;background:#fff;padding:8px;border-radius:8px;image-rendering:pixelated}
.label-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0}.label-row input[type=text]{flex:1 1 180px;width:auto}.label-row select{width:auto}.num-in{width:5em}
