/* CRM RS INGENIERIE — charte : bleu marine #0D2B4E, turquoise #14B2CF, fond #F4F7FA, Poppins + Plus Jakarta Sans */
@font-face{font-family:'Poppins';font-weight:500;font-style:normal;font-display:swap;src:url(fonts/poppins-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Poppins';font-weight:600;font-style:normal;font-display:swap;src:url(fonts/poppins-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/plus-jakarta-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-weight:500;font-style:normal;font-display:swap;src:url(fonts/plus-jakarta-sans-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-weight:600;font-style:normal;font-display:swap;src:url(fonts/plus-jakarta-sans-latin-600-normal.woff2) format('woff2')}
:root{
  --navy:#0D2B4E;--navy-2:#143A66;--teal:#14B2CF;--teal-d:#0B8CA6;--teal-l:#E3F6FA;
  --bg:#F4F7FA;--card:#fff;--line:#E3EAF1;--line-2:#D5DFEA;--ink:#0D2B4E;--text:#22364F;--muted:#5B6E85;
  --ok:#14703F;--ok-bg:#E0F5EA;--warn:#8A5A00;--warn-bg:#FFF1D6;--danger:#A3261E;--danger-bg:#FCE7E5;--info:#13608F;--info-bg:#E4F1FA;
  --radius:14px;--radius-s:10px;--font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;--font-h:'Poppins','Plus Jakarta Sans',system-ui,sans-serif;
  --side-w:252px}
*{box-sizing:border-box}
html{font-size:15px}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.5;-webkit-font-smoothing:antialiased}
input[type=hidden]{display:none}
a{color:var(--teal-d);text-decoration:none}a:hover{text-decoration:underline}
a.plain{color:inherit}a.plain:hover{color:var(--teal-d)}
h1,h2,h3{font-family:var(--font-h);color:var(--ink);margin:0;font-weight:600}
h1{font-size:1.5rem;line-height:1.25}h1 small{font-weight:500;color:var(--muted);font-size:.7em;margin-left:.4em}
h2{font-size:1.05rem;margin:0 0 .7rem}h2 small{font-weight:500;color:var(--muted);font-size:.78em;margin-left:.35em}
h3{font-size:1rem;margin:.2rem 0 .8rem}
.muted{color:var(--muted)}.small{font-size:.85rem}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
svg.i{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}
/* ---------- structure : barre latérale ---------- */
.app{display:flex;min-height:100vh}
.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--side-w);background:var(--navy);color:#C9D6E6;display:flex;flex-direction:column;padding:18px 14px;z-index:40;overflow-y:auto}
.brand{display:block;margin-bottom:18px;color:#fff}.brand:hover{text-decoration:none}
.brand-tile{display:flex;align-items:center;justify-content:center;background:#fff;border-radius:16px;padding:12px 14px}
.brand-tile img{width:100%;max-width:170px;height:auto;display:block}
.brand-name{display:block;text-align:center;margin-top:12px;font-family:var(--font-h);font-weight:600;font-size:1.7rem;line-height:1;letter-spacing:.26em;padding-left:.26em;color:#fff}
.brand-name b{font-weight:600;color:#fff}
.brand-name::after{content:"";display:block;width:34px;height:3px;border-radius:3px;background:var(--teal);margin:9px auto 0}
.topbar-name b{color:#fff;font-weight:600}
.side-nav{display:flex;flex-direction:column;gap:3px}
.side-nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:12px;color:#C9D6E6;font-size:.93rem;font-weight:500}
.side-nav a svg.i{width:1.3em;height:1.3em;color:#8FA6C0}
.side-nav a:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}
.side-nav a.on{background:rgba(20,178,207,.2);color:#fff}
.side-nav a.on svg.i{color:var(--teal)}
.side-foot{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;gap:6px}
.me{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px;color:#fff}.me:hover{background:rgba(255,255,255,.07);text-decoration:none}
.me-txt{display:flex;flex-direction:column;line-height:1.25;min-width:0}.me-txt strong{font-size:.86rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-txt small{color:#9FB3CB;font-size:.75rem}
.side-foot form{margin:0}
.side-logout{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;color:#9FB3CB;font:inherit;font-size:.86rem;padding:8px;border-radius:12px;cursor:pointer;text-align:left}
.side-logout:hover{background:rgba(255,255,255,.07);color:#fff}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--teal);color:var(--navy);font-family:var(--font-h);font-weight:600;font-size:.78rem;flex:none}
.avatar-sm{width:24px;height:24px;font-size:.62rem}.avatar-lg{width:56px;height:56px;font-size:1.1rem}
.main{flex:1;min-width:0;margin-left:var(--side-w)}
.topbar{display:none}
.wrap{max-width:1200px;margin:0 auto;padding:26px 30px 90px}
.scrim{display:none}
/* ---------- pages invité (connexion) ---------- */
body.guest{background:var(--navy)}
.guest-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}
.auth-card{width:min(430px,100%);background:#fff;border-radius:20px;padding:30px 30px 24px;box-shadow:0 20px 60px rgba(0,0,0,.28)}
.auth-logo{display:block;width:210px;max-width:70%;height:auto;margin:0 auto 14px}
.auth-card h1{text-align:center;font-size:1.3rem;letter-spacing:.02em}
.auth-card>.muted{text-align:center;margin:.35rem 0 1.2rem}
.auth-note{background:var(--teal-l);border-radius:12px;padding:.7rem .9rem;font-size:.88rem;color:var(--navy);margin:1rem 0 .4rem}
.guest-flash{width:min(430px,100%)}
.btn-block{width:100%}
/* ---------- composants ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.25rem;margin:0 0 1rem}
.card.narrow{max-width:560px}.card.narrow-lg{max-width:780px}.card.empty{color:var(--muted);text-align:center;padding:2.2rem}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1.2rem;flex-wrap:wrap}
.back{display:inline-block;font-size:.85rem;color:var(--muted);margin-bottom:.15rem}
.toolbar{display:flex;gap:.5rem;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;background:#fff;border:1px solid var(--line-2);color:var(--navy);padding:.55rem 1rem;border-radius:var(--radius-s);font:inherit;font-weight:500;font-size:.92rem;cursor:pointer;text-align:center;white-space:nowrap}
.btn:hover{border-color:var(--teal);color:var(--navy);text-decoration:none;background:#fff}
.btn-primary{background:var(--navy);border-color:var(--navy);color:#fff}
.btn-primary:hover{background:var(--navy-2);border-color:var(--navy-2);color:#fff}
.btn-danger{color:var(--danger);border-color:#E9B9B5}.btn-danger:hover{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}
button.link{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;padding:0}button.link:hover{color:var(--navy);text-decoration:underline}
label{display:block;font-weight:600;font-size:.88rem;color:var(--ink);margin:0 0 .85rem}
label small,.field small{font-weight:400;color:var(--muted);display:block;margin-top:.25rem}
input,select,textarea{width:100%;font:inherit;font-weight:400;color:var(--text);padding:.55rem .7rem;border:1px solid var(--line-2);border-radius:var(--radius-s);background:#fff;margin-top:.28rem}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(20,178,207,.2)}
input[readonly],select:disabled{background:#F1F5F9;color:var(--muted)}
textarea{resize:vertical;line-height:1.45}
input[type=checkbox],input[type=radio]{width:auto;margin:0 .45rem 0 0;accent-color:var(--navy)}.check{font-weight:500}
fieldset{border:1px solid var(--line);border-radius:var(--radius-s);padding:.75rem .95rem .25rem;margin:.2rem 0 .9rem}
legend{font-weight:600;font-size:.88rem;padding:0 .4rem;color:var(--ink)}legend small{font-weight:400;color:var(--muted)}
.grid{display:grid;gap:0 1rem}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:1.3fr .5fr 1fr 1fr}.span2{grid-column:span 2}
.row{display:flex;gap:.5rem;align-items:center}.row select{flex:1}
.field{margin:0 0 .85rem}.flabel{display:block;font-weight:600;font-size:.88rem;color:var(--ink)}
.static{display:flex;align-items:center;gap:.55rem;margin-top:.28rem;padding:.5rem .7rem;border:1px dashed var(--line-2);border-radius:var(--radius-s);background:#FAFCFD;color:var(--navy);font-weight:500}
.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1rem;align-items:center}
.filters input[type=search]{flex:1;min-width:220px;margin:0}.filters select{width:auto;margin:0}
.inline-label{display:flex;align-items:center;gap:.5rem;margin:0;font-weight:500;font-size:.88rem}.inline-label select{width:auto;margin:0}
.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.table-wrap.flat{border:0;border-radius:0;margin:0 -.2rem}
table.list{width:100%;border-collapse:collapse}
table.list th,table.list td{padding:.65rem .8rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
table.list th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#F8FAFC;font-weight:600;white-space:nowrap}
table.list tr:last-child td{border-bottom:0}table.list tbody tr:hover td{background:#FAFCFD}
table.list td.chk,table.list th.chk{width:34px;padding-right:0}
.row-off td{opacity:.6}
.num{text-align:right!important;white-space:nowrap}.actions{text-align:right;white-space:nowrap}.actions .inline{margin-left:.3rem}
.person{display:flex;align-items:center;gap:.7rem}
.profile{display:flex;align-items:center;gap:1rem;margin:.3rem 0 .8rem}
.badge{display:inline-block;white-space:nowrap;padding:.14rem .62rem;border-radius:99px;font-size:.76rem;font-weight:600;background:#EEF2F6;color:#4A5B70}
.b-brouillon{background:#EEF2F6;color:#4A5B70}.b-envoye{background:var(--info-bg);color:var(--info)}.b-accepte,.b-payee{background:var(--ok-bg);color:var(--ok)}.b-refuse{background:var(--danger-bg);color:var(--danger)}.b-a_payer{background:var(--warn-bg);color:var(--warn)}
select.st{appearance:none;-webkit-appearance:none;width:auto;margin:0;border:0;border-radius:99px;padding:.22rem 1.55rem .22rem .7rem;font-weight:600;font-size:.78rem;cursor:pointer;background-repeat:no-repeat;background-position:right .5rem center;background-size:.7rem;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230D2B4E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>")}
select.st:disabled{cursor:not-allowed;opacity:.85;background-image:none;padding-right:.7rem}
select.st-brouillon{background-color:#EEF2F6;color:#4A5B70}select.st-envoye{background-color:var(--info-bg);color:var(--info)}
select.st-accepte,select.st-payee{background-color:var(--ok-bg);color:var(--ok)}select.st-refuse{background-color:var(--danger-bg);color:var(--danger)}select.st-a_payer{background-color:var(--warn-bg);color:var(--warn)}
.bulkbar{position:sticky;top:10px;z-index:15;display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;background:var(--navy);color:#fff;border-radius:var(--radius);padding:.6rem .9rem;margin:0 0 .8rem;box-shadow:0 8px 24px rgba(13,43,78,.25)}
.bulkbar[hidden]{display:none}
.bulkbar .inline-label{color:#fff}.bulkbar select{background:#fff;color:var(--navy)}
.bulkbar .btn{padding:.4rem .8rem}.bulkbar .btn-primary{background:var(--teal);border-color:var(--teal);color:var(--navy);font-weight:600}
.bulkbar .btn:not(.btn-primary){background:transparent;border-color:rgba(255,255,255,.4);color:#fff}
.bulk-count{margin-right:auto}
.pager{display:flex;gap:1rem;justify-content:center;align-items:center;margin:1rem 0}
.flash{padding:.75rem 1rem;border-radius:var(--radius-s);margin:0 0 1rem;border:1px solid}
.flash ul{margin:.3rem 0 0 1.1rem;padding:0}
.flash-ok{background:#E9F7EF;border-color:#B7E1C8;color:#14572F}.flash-error{background:#FDF1F0;border-color:#F0C4C0;color:#8A1F18}.flash-warn{background:#FFF8E6;border-color:#F0D9A6;color:#6B4A00}
.toast{position:fixed;right:20px;bottom:20px;z-index:80;background:var(--navy);color:#fff;padding:.7rem 1rem;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.3);max-width:min(420px,90vw);font-size:.9rem}
.toast[hidden]{display:none}.toast.err{background:var(--danger)}
.linkbar{padding:.75rem 1rem}.inline{display:inline;margin:0}
.danger-zone{margin:2rem 0 0;text-align:right}
.coords{display:flex;flex-direction:column;gap:.55rem}.coords>div{display:flex;gap:.7rem;align-items:flex-start}.coords svg.i{color:var(--teal-d);margin-top:.15rem}
.notes{margin-top:1rem;padding:.75rem .9rem;background:#F8FAFC;border-radius:var(--radius-s);font-size:.9rem}
/* ---------- lignes de devis ---------- */
.line{border:1px solid var(--line);border-radius:var(--radius);padding:.9rem;margin:0 0 .9rem;background:#FBFDFE}
.line-head{display:flex;align-items:center;gap:.3rem;margin-bottom:.5rem}.line-head strong{flex:1;color:var(--teal-d);font-family:var(--font-h)}
.section{border-left:3px solid var(--teal-l);padding:.1rem 0 .1rem .75rem;margin:0 0 .7rem}
.section-head{display:flex;gap:.3rem;align-items:center}.section-head .f-titre{font-weight:600;margin-top:0;flex:1;min-width:0}
.section textarea{margin-top:.3rem;min-height:60px}
.icon{flex:none;width:auto;border:1px solid var(--line-2);background:#fff;border-radius:8px;padding:.28rem .55rem;cursor:pointer;font:inherit;line-height:1;color:var(--navy)}
.icon:hover{background:var(--bg)}.icon.del:hover{color:var(--danger);border-color:#E9B9B5}
.line-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin:.2rem 0 .8rem}.line-actions select{width:auto;margin:0;max-width:340px}
.line-nums{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end;border-top:1px dashed var(--line-2);padding-top:.75rem}
.line-nums label{margin:0}.line-nums input{width:8.5rem}.line-nums .f-unite{width:5rem}.line-nums .f-qte{width:6rem}
.line-nums .montant{margin-left:auto;text-align:right;font-weight:600;font-size:.85rem;color:var(--muted)}.line-nums .montant span{display:block;font-size:1.15rem;color:var(--navy);font-family:var(--font-h)}
.line-add{display:flex;gap:.6rem;flex-wrap:wrap;margin:.2rem 0 1rem}.line-add select{width:auto;margin:0;max-width:420px}
.totals{margin-left:auto;border-collapse:collapse;min-width:290px}
.totals th{text-align:left;font-weight:500;padding:.25rem 1rem .25rem 0;color:var(--muted)}
.totals td{text-align:right;padding:.25rem 0;font-variant-numeric:tabular-nums}
.totals tr.ttc th,.totals tr.ttc td{font-weight:600;color:var(--navy);font-size:1.12rem;border-top:1px solid var(--line);padding-top:.5rem;font-family:var(--font-h)}
.sticky-actions{position:sticky;bottom:0;background:linear-gradient(rgba(244,247,250,0),var(--bg) 40%);padding:1.4rem 0 .9rem;display:flex;gap:.6rem}
.tpl{border-top:1px solid var(--line);padding:.9rem 0}.tpl:first-of-type{border-top:0}.tpl .row{margin:.5rem 0}
details summary{cursor:pointer;color:var(--teal-d)}
dialog{border:0;border-radius:var(--radius);padding:1.3rem;width:min(460px,94vw);box-shadow:0 20px 60px rgba(0,0,0,.25)}
dialog::backdrop{background:rgba(13,43,78,.5)}
dialog .row{justify-content:flex-end;margin-top:.8rem}.err{color:var(--danger);margin:.4rem 0 0}
/* ---------- tableau de bord ---------- */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:0 0 1rem}.kpis-4{grid-template-columns:repeat(4,1fr)}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.95rem 1.05rem;color:inherit;display:block}
.kpi-label{font-size:.8rem;font-weight:600;color:var(--muted)}.kpi-label span{display:block;font-weight:400;font-size:.74rem}
.kpi-big{font-family:var(--font-h);font-weight:600;font-size:1.85rem;line-height:1.1;margin:.35rem 0 .15rem;font-variant-numeric:tabular-nums;color:var(--navy)}
.kpi-sub{color:var(--muted);font-size:.84rem}
a.kpi-link{text-decoration:none}a.kpi-link:hover{border-color:var(--teal);text-decoration:none;box-shadow:0 4px 14px rgba(20,178,207,.15)}
.kpi-warn{border-color:#F0D9A6;background:#FFF9EB}.kpi-warn .kpi-big{color:var(--warn)}
.kpi-alert{border-color:#F0C4C0;background:#FFF7F6}.kpi-alert .kpi-big{color:var(--danger)}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:0 0 1rem}.dash-grid .card{margin:0}
.dash-grid h2 small{font-weight:400;color:var(--muted);font-size:.78rem;margin-left:.3rem}
.more{float:right;font-size:.85rem;font-weight:400;font-family:var(--font)}
.legend{font-size:.8rem;color:var(--muted);margin:-.2rem 0 .4rem}
.dot{display:inline-block;width:.7rem;height:.7rem;border-radius:3px;margin:0 .25rem 0 .7rem;vertical-align:-1px}.dot:first-child{margin-left:0}
.d1{background:var(--teal)}.d2{background:var(--navy)}
.mchart{display:flex;gap:6px;padding-top:.3rem}.mchart.dense{gap:2px}
.mcol{flex:1;min-width:0}
.pair{height:150px;display:flex;align-items:flex-end;justify-content:center;gap:3px;border-bottom:1px solid var(--line)}
.bar{width:42%;border-radius:3px 3px 0 0}.b1{background:var(--teal)}.b2{background:var(--navy)}
.mchart.dense .bar{width:44%}.mchart.dense .mlabel{font-size:.6rem}
.mlabel{font-size:.7rem;color:var(--muted);text-align:center;margin-top:.3rem;white-space:nowrap}
.hrow{display:grid;grid-template-columns:105px 1fr auto;gap:.6rem;align-items:center;margin:.5rem 0}
.hlabel{font-size:.9rem}.hlabel.wide{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.htrack{background:#EDF1F5;border-radius:99px;height:10px;overflow:hidden}.htrack.thin{height:6px;margin-top:.3rem}
.hfill{height:100%;border-radius:99px;background:#B8C1CC}
.f-brouillon{background:#B8C1CC}.f-envoye{background:var(--teal)}.f-accepte{background:#2F9E63}.f-refuse{background:#D9534F}
.hval{text-align:right;white-space:nowrap;font-size:.9rem}
.mini{width:100%;border-collapse:collapse}
.mini th{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;padding:.3rem .4rem;border-bottom:1px solid var(--line)}
.mini td{padding:.5rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}.mini tr:last-child td{border-bottom:0}.mini .muted{font-size:.8rem}
.range{font-size:.85rem;margin-left:.3rem}
.logo-preview{max-height:72px;width:auto}
/* ---------- adaptation mobile ---------- */
@media(max-width:1000px){.kpis-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){
  .sidebar{transform:translateX(-100%);transition:transform .2s ease;width:min(290px,86vw)}
  body.nav-open .sidebar{transform:none;box-shadow:0 0 40px rgba(0,0,0,.35)}
  .scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(13,43,78,.45);z-index:30;opacity:0;pointer-events:none;transition:opacity .2s}
  body.nav-open .scrim{opacity:1;pointer-events:auto}
  .main{margin-left:0}
  .topbar{display:flex;align-items:center;gap:.8rem;background:var(--navy);color:#fff;padding:.6rem 1rem;position:sticky;top:0;z-index:20}
  .topbar-name{font-family:var(--font-h);font-weight:600;font-size:1.4rem;line-height:1;letter-spacing:.2em;color:#fff;display:inline-flex;align-items:center;gap:.35rem}
  .topbar-name::after{content:"";width:16px;height:3px;border-radius:3px;background:var(--teal)}
  .menu-btn{background:none;border:0;color:#fff;cursor:pointer;padding:.2rem}.menu-btn svg.i{width:1.6em;height:1.6em}
  .wrap{padding:18px 14px 90px}
  .dash-grid,.g2,.g3,.g4{grid-template-columns:1fr}.span2{grid-column:auto}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .line-nums .montant{margin-left:0}.hrow{grid-template-columns:90px 1fr auto}
}
@media(max-width:560px){.kpis,.kpis-4{grid-template-columns:1fr}.page-head{align-items:flex-start}}
@media print{.sidebar,.topbar,.toast,.bulkbar{display:none!important}.main{margin:0}}

.remise-field{max-width:260px;margin:.4rem 0 .8rem auto}.remise-field input{text-align:right}
.totals tr[hidden]{display:none}

/* ---------- page Cachet ---------- */
.stamp-app{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1rem;align-items:start}
.stamp-app .card{margin:0}
.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;text-align:center;min-height:320px;border:2px dashed var(--line-2);border-radius:var(--radius);background:#FAFCFD;color:var(--muted);cursor:pointer;padding:2rem}
.dropzone svg.i{width:2.6em;height:2.6em;color:var(--teal-d)}.dropzone strong{color:var(--navy);font-family:var(--font-h);font-size:1.1rem}
.dropzone:hover,.dropzone.over,.dropzone:focus-visible{border-color:var(--teal);background:var(--teal-l)}
.stage[hidden],.dropzone[hidden]{display:none}
.page-nav{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.8rem}.page-nav .btn{padding:.35rem .7rem}.file-name{margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.page-scroll{overflow:auto;background:#E9EEF3;border-radius:var(--radius-s);padding:12px;text-align:center}
.page-wrap{position:relative;display:inline-block;background:#fff;box-shadow:0 4px 18px rgba(13,43,78,.18);text-align:left;line-height:0}
.page-wrap canvas{display:block;max-width:100%}
.overlay-layer{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none}
.stamp-ov{position:absolute;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;line-height:0}
.stamp-ov img{display:block;width:100%;height:auto;pointer-events:none}
.stamp-ov.sel{outline:2px dashed var(--teal);outline-offset:3px;cursor:grabbing}
.stamp-ov:hover{outline:1px dashed var(--teal);outline-offset:3px}
.ov-handle{position:absolute;right:-9px;bottom:-9px;width:16px;height:16px;border-radius:50%;background:var(--teal);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35);cursor:nwse-resize;touch-action:none}
.stamp-panel h2{margin-bottom:.5rem}.stamp-panel h3{margin:1rem 0 .4rem;font-size:.95rem}
.stamp-preview{background:repeating-conic-gradient(#F1F4F8 0% 25%,#fff 0% 50%) 0 0/16px 16px;border:1px solid var(--line);border-radius:var(--radius-s);padding:.6rem;margin:0 0 .8rem;text-align:center}
.stamp-preview img{max-width:100%;max-height:110px;height:auto}
.stamp-panel input[type=range]{padding:0;margin-top:.4rem;accent-color:var(--navy)}
.stamp-panel output{float:right;font-weight:500;color:var(--muted)}
ul.placed{list-style:none;margin:0 0 1rem;padding:0;max-height:220px;overflow:auto}
ul.placed li{display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:.3rem .45rem;border-radius:8px;font-size:.88rem}
ul.placed li.on{background:var(--teal-l)}.link-btn{background:none;border:0;color:var(--teal-d);cursor:pointer;font:inherit;padding:0;text-align:left}.link-btn:hover{text-decoration:underline}
.stamp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(190px,100%),1fr));gap:.8rem}
.stamp-card{margin:0;border:1px solid var(--line);border-radius:var(--radius-s);overflow:hidden;background:#fff}
.stamp-thumb{background:repeating-conic-gradient(#F1F4F8 0% 25%,#fff 0% 50%) 0 0/16px 16px;padding:.6rem;text-align:center}.stamp-thumb img{max-width:100%;max-height:90px}
.stamp-card figcaption{padding:.5rem .7rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:.88rem}.stamp-card form{margin:0}
@media(max-width:1000px){.stamp-app{grid-template-columns:1fr}}

.swatches{display:flex;gap:.5rem;margin:.2rem 0}.swatches button{width:28px;height:28px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line-2);cursor:pointer;padding:0}
.swatches button.on{box-shadow:0 0 0 2px var(--teal)}
.btn[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.stamp-ov.txt{cursor:grab;white-space:pre;line-height:1.2;font-family:Helvetica,Arial,"Liberation Sans",sans-serif;padding:0;min-width:1ch}
.stamp-ov.txt.sel{outline-offset:4px}
#txt-content{margin-bottom:.5rem}

/* ---------- import depuis Claude ---------- */
.g2-wide{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1rem}
textarea.mono,pre.instruction{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.45}
pre.instruction{white-space:pre-wrap;background:#F8FAFC;border:1px solid var(--line);border-radius:var(--radius-s);padding:.8rem;max-height:420px;overflow:auto;margin:.6rem 0 0}
ol.steps{margin:.2rem 0 1rem 1.1rem;padding:0}ol.steps li{margin:.35rem 0}
.prest-head{display:flex;gap:.8rem;align-items:baseline;flex-wrap:wrap;margin-bottom:.5rem}.prest-amount{margin-left:auto;font-family:var(--font-h)}
.prest-title{font-weight:600;text-decoration:underline;margin:.6rem 0 .2rem;color:var(--ink)}
ul.prest-list{margin:.2rem 0 .4rem 1.1rem;padding:0}ul.prest-list li{margin:.15rem 0}
#client-select{margin-top:.4rem}
@media(max-width:900px){.g2-wide{grid-template-columns:1fr}}

/* ---------- prestations en option ---------- */
.line.is-option{border-left:4px solid var(--teal);background:#F4FBFD}
.opt-row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin:0 0 .7rem}.opt-row .check{margin:0}
.opt-statut select{width:auto;margin:0 0 0 .3rem;padding:.25rem .5rem}.opt-statut[hidden]{display:none}
.opts-box{background:#F4FBFD;border-color:#BFE6EF;margin:.6rem 0}.opts-box ul{margin:.3rem 0 0 1.1rem;padding:0}
.opt-choice{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem .7rem;border:1px solid var(--line);border-radius:var(--radius-s);margin:0 0 .5rem;font-weight:400}.opt-choice input{margin-top:.25rem}

.prest-opt{margin:0 0 0 .8rem;font-weight:500;font-size:.88rem}.prest-head .badge[hidden]{display:none}

/* ---------- fenêtre « Télécharger », pièces jointes, journal ---------- */
#dl-dialog{border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.4rem;max-width:560px;width:calc(100% - 2rem);box-shadow:0 24px 60px rgba(13,43,78,.25)}
#dl-dialog::backdrop{background:rgba(13,43,78,.45)}
#dl-dialog h3{margin:0 0 .8rem}
.dl-warn{background:#FFF8E6;border:1px solid #F2D58A;border-radius:var(--radius-s);padding:.6rem .8rem;margin:0 0 .9rem;font-size:.9rem}
.dl-warn[hidden]{display:none}.dl-warn ul{margin:.35rem 0 0 1.1rem;padding:0}.dl-warn svg{width:1.1em;height:1.1em;vertical-align:-.2em;margin-right:.25rem}
.dl-name{display:flex;align-items:center;gap:.4rem}.dl-name input{flex:1;min-width:0}.dl-name em{font-style:normal;color:var(--muted)}
#dl-dialog .row{display:flex;gap:.6rem;justify-content:flex-end;margin-top:.8rem}
.pj{display:inline-flex;align-items:center;gap:.15rem;margin-left:.35rem;color:var(--muted);font-size:.78rem}.pj svg{width:.95em;height:.95em}
.pieces h2{display:flex;align-items:center;gap:.4rem}.pieces h2 svg{width:1.1em;height:1.1em}
.pieces-list{list-style:none;margin:.4rem 0 .6rem;padding:0}.pieces-list li{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.4rem 0;border-bottom:1px dashed var(--line)}
.pieces-list li:last-child{border-bottom:0}.pieces-list form.inline{margin:0 0 0 auto}
.piece-add{display:flex;gap:.8rem;align-items:flex-end;flex-wrap:wrap;margin-top:.6rem}.piece-add label{margin:0}
.small-title{font-size:.9rem;margin:.8rem 0 0;color:var(--muted)}
.history summary{cursor:pointer;display:flex;align-items:center;gap:.4rem;font-weight:600}.history summary svg{width:1.1em;height:1.1em}
.table.mini{font-size:.85rem;margin-top:.6rem}.nowrap{white-space:nowrap}
.filters{display:flex;gap:.8rem;align-items:flex-end;flex-wrap:wrap}.filters label{margin:0}.filters .grow{flex:1;min-width:200px}
.pager{display:flex;gap:1rem;align-items:center;justify-content:center;margin:1rem 0}

.attach-pick{display:block;margin:.8rem 0 .4rem;font-size:.88rem}.attach-pick select{width:100%;margin-top:.25rem}
#attach-dialog{border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.4rem;max-width:520px;width:calc(100% - 2rem)}#attach-dialog::backdrop{background:rgba(13,43,78,.45)}#attach-dialog .row{display:flex;gap:.6rem;justify-content:flex-end;margin-top:.8rem}#attach-dest{width:100%}


/* ---------- corbeille ---------- */
.tabs{display:flex;gap:.4rem;margin:0 0 .8rem;flex-wrap:wrap}.tab{padding:.4rem .9rem;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-weight:500;font-size:.9rem;background:#fff}
.tab.active{background:var(--navy);border-color:var(--navy);color:#fff}.tab small{opacity:.75}
.trash-actions{white-space:normal;min-width:230px}.trash-actions form{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin:0 .3rem .3rem 0}.trash-actions input[type=text]{width:7.5rem}

/* ---------- recherche globale ---------- */
.side-search{position:relative;margin:.2rem .9rem .8rem}
.side-search input{width:100%;padding:.5rem 2rem .5rem .7rem;border-radius:var(--radius-s);border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:#fff;font:inherit;font-size:.88rem}
.side-search input::placeholder{color:rgba(255,255,255,.65)}.side-search input:focus{background:#fff;color:var(--ink);outline:2px solid var(--teal)}.side-search input:focus::placeholder{color:var(--muted)}
.side-search kbd{position:absolute;right:.55rem;top:50%;transform:translateY(-50%);font:600 .72rem/1 var(--font-b,inherit);color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:.12rem .35rem;pointer-events:none}
.side-search input:focus+kbd{display:none}
.search-big{display:flex;gap:.6rem;align-items:center}.search-big input{flex:1;min-width:0}
.search-group h2{padding:.8rem 1rem 0;font-size:1.05rem}.snippet-row td{border-top:0;padding-top:0;font-size:.88rem}
mark{background:#FFF1B8;color:inherit;padding:0 .1em;border-radius:2px}

/* ---------- sauvegardes ---------- */
.backup-status.good{border-left:4px solid #1E9E62}.backup-status.bad{border-left:4px solid var(--danger)}
.kv{display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:.5rem 1rem;margin:.6rem 0}.kv dt{color:var(--muted);font-size:.9rem}.kv dd{margin:0}
.secret-box{background:#FFF8E6;border:1px solid #F2D58A;border-radius:var(--radius-s);padding:.8rem 1rem;margin:0 0 1rem}.secret-box code{font-size:.95rem;word-break:break-all;margin-right:.5rem}
.row-actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.row-actions form{margin:0}
.chip{display:inline-block;background:var(--teal-l);color:var(--ink);border-radius:999px;padding:.1rem .6rem;font-size:.85rem;margin:0 .25rem .25rem 0}
.restore-confirm{display:grid;gap:.8rem;max-width:460px;margin-top:1rem}.restore-confirm label{display:block;font-weight:500}.restore-confirm input{width:100%}
@media(max-width:700px){.kv{grid-template-columns:1fr}}

/* ---------- envoi vers Drive ---------- */
.drive-status{display:flex;gap:.6rem;align-items:flex-start;padding:.7rem 1rem;margin:0 0 .8rem;font-size:.92rem}.drive-status>svg{width:1.2em;height:1.2em;flex:none;margin-top:.15rem;color:var(--teal-d)}
.drive-status.drive-sent{border-left:4px solid #1E9E62}.drive-status.drive-error{border-left:4px solid var(--danger)}.drive-status.drive-pending,.drive-status.drive-running{border-left:4px solid var(--teal)}
.drive-form{display:grid;gap:.8rem;max-width:620px}.drive-form label{display:block;font-weight:500}.drive-form input[type=url]{width:100%;margin-top:.25rem}

/* ---------- tableaux « table » (corbeille, journal, sauvegardes, recherche, pièces jointes) : même présentation que les listes ---------- */
.table-scroll{overflow-x:auto}.table-card{padding:0;overflow:hidden}.table-card>h2{margin:0}
table.table{width:100%;border-collapse:collapse}
table.table th,table.table td{padding:.65rem .8rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
table.table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#F8FAFC;font-weight:600;white-space:nowrap}
table.table tr:last-child td{border-bottom:0}table.table tbody tr:hover td{background:#FAFCFD}
table.table.mini th,table.table.mini td{padding:.45rem .6rem}

/* ---------- connecteur Claude ---------- */
.oauth-card{max-width:460px}.oauth-scopes{margin:.2rem 0 .8rem 1.1rem;padding:0}.oauth-actions{display:flex;gap:.6rem;margin:1rem 0 .6rem}
.steps{margin:.6rem 0 .4rem 1.2rem;padding:0;display:grid;gap:.6rem}.checks{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:.4rem}.checks .ok{color:#1E9E62;font-weight:600}.checks .ko{color:var(--danger);font-weight:600}

/* ---------- Notes de frais ---------- */
.b-ndf-brouillon{background:#EEF2F6;color:#4A5B70}.b-ndf-a_verifier{background:var(--warn-bg);color:var(--warn)}.b-ndf-validee{background:var(--info-bg);color:var(--info)}.b-ndf-remboursee{background:var(--ok-bg);color:var(--ok)}.b-ndf-rejetee{background:var(--danger-bg);color:var(--danger)}
.btn-sm{padding:.28rem .65rem;font-size:.82rem}.btn-xl{padding:1.05rem 1.2rem;font-size:1.05rem;width:100%;justify-content:center}
.flash-info{background:var(--info-bg);color:var(--info);border:1px solid #BFDDF1}
.ndf-pick{display:grid;gap:.7rem;margin:0 0 1rem}.ndf-deposit label{display:block}.ndf-deposit input[type=text],.ndf-deposit select{width:100%}
.ndf-thumbs{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;padding:0;margin:0 0 .6rem}
.ndf-thumbs li{position:relative;width:88px;height:88px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#F8FAFC;display:flex;align-items:center;justify-content:center;font-size:.7rem;text-align:center;padding:.2rem;word-break:break-all}
.ndf-thumbs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ndf-thumbs button{position:absolute;top:3px;right:3px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(13,43,78,.85);color:#fff;cursor:pointer;line-height:1;font-size:15px}
.ndf-combine{margin:.2rem 0 .8rem;font-weight:500}
.wrap.wrap-wide{max-width:1720px}.wrap.wrap-mid{max-width:1450px}
.ndf-grid{display:grid;grid-template-columns:minmax(min(300px,100%),4fr) minmax(0,8fr);gap:1rem;align-items:start}
.ndf-viewer{position:sticky;top:.8rem;margin:0}.ndf-viewer figure{margin:0}.ndf-viewer img{max-width:100%;border-radius:8px;display:block;margin:0 auto}.ndf-pdf{width:100%;height:68vh;border:1px solid var(--line);border-radius:8px}
.ndf-pager{display:flex;gap:.3rem;margin:.6rem 0 0;flex-wrap:wrap}.ndf-addphoto{margin:.8rem 0 0}.ndf-addphoto .btn{cursor:pointer}
.ndf-side>.card{margin:0 0 1rem}.ndf-side h2{margin-top:0}
.ndf-st{display:inline-block;font-size:.66rem;font-weight:600;padding:.04rem .45rem;border-radius:99px;margin-left:.3rem;vertical-align:middle;white-space:nowrap}
.ndf-st-auto{background:var(--ok-bg);color:var(--ok)}.ndf-st-verifier{background:var(--warn-bg);color:var(--warn)}.ndf-st-modifie{background:var(--info-bg);color:var(--info)}.ndf-st-saisi{background:#EEF2F6;color:#4A5B70}
.ndf-flags{padding:.7rem 1rem;display:grid;gap:.6rem}.ndf-flag{border-radius:8px;padding:.55rem .8rem}.ndf-flag ul{margin:.3rem 0 0 1.1rem;padding:0}
.ndf-lines input{width:100%;min-width:4.2rem;margin:0 0 .25rem}.ndf-lines .ndf-compte-lib{display:block;margin:-.1rem 0 .3rem}.ndf-lines td{vertical-align:top}.ndf-lines .num{text-align:right}.ndf-lines tfoot td{background:#F8FAFC}
.ndf-actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.ndf-actions form.inline{display:inline}.ndf-reject summary{list-style:none;cursor:pointer;display:inline-flex}.ndf-reject[open]{flex-basis:100%}
.ndf-dl{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:0}.ndf-dl dt{color:var(--muted);font-size:.86rem}.ndf-dl dd{margin:0}
.ndf-bars{display:flex;gap:.3rem;align-items:flex-end;height:124px;margin-top:.6rem}.ndf-bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0}
.ndf-bar span{display:block;width:100%;background:var(--teal);border-radius:4px 4px 0 0}.ndf-bar.on span{background:var(--navy)}.ndf-bar small{font-size:.62rem;color:var(--muted);margin-top:.2rem}
.ndf-tabs{margin-bottom:.6rem}.pager{margin-top:.8rem}
@media(max-width:900px){.ndf-grid{grid-template-columns:minmax(0,1fr)}.ndf-viewer{position:static}.ndf-dl{grid-template-columns:1fr}.ndf-viewer img{max-height:55vh}}
.ndf-deposit [hidden],.ndf-viewer [hidden],.ndf-flags [hidden]{display:none!important}
.ndf-lines th:nth-child(1){width:36%}.ndf-lines-m th:nth-child(1){width:auto}.ndf-lines input.ndf-taux{max-width:84px}.ndf-lines input.ndf-ttc,.ndf-lines input.ndf-tva{min-width:6.2rem}

/* notes de frais : aucun élément ne doit élargir la page (sinon le téléphone « dézoome » en mode ordinateur) */
.ndf-side,.ndf-viewer,.ndf-grid>*{min-width:0}.ndf-viewer img{max-height:72vh;width:auto;max-width:100%;object-fit:contain}
@media(min-width:901px){.ndf-lines{min-width:640px}}
@media(max-width:700px){
  .ndf-lines thead{display:none}
  .ndf-lines,.ndf-lines tbody,.ndf-lines tfoot,.ndf-lines tr,.ndf-lines td{display:block;width:100%}
  .ndf-lines tr.ndf-line{border:1px solid var(--line);border-radius:12px;padding:.6rem;margin:.6rem 0;background:#fff}
  .ndf-lines td{padding:.25rem 0;border:0;text-align:left}
  .ndf-lines td[data-label]::before{content:attr(data-label);display:block;font-size:.72rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.15rem}
  .ndf-lines td.num{text-align:left}
  .ndf-lines input.ndf-taux,.ndf-lines input.ndf-ttc,.ndf-lines input.ndf-tva{max-width:none;width:100%}
  .ndf-lines tfoot tr{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.ndf-lines tfoot td{width:auto}
}
.ndf-viewer figcaption{overflow-wrap:anywhere}.ndf-tabs{flex-wrap:wrap}

/* relances de factures */
.relances .relance-last{margin:.2rem 0 .6rem}.relances .relance-last .badge{margin:0 .35rem}
.relance-form{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;margin:.8rem 0}
.relance-form label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem}.relance-form .grow{flex:1 1 14rem}
.relance-history{margin-top:.6rem}.relance-history th{text-align:left;font-weight:600;font-size:.8rem}.relance-info{margin-top:.2rem}
@media(max-width:700px){.relance-form label,.relance-form .btn{flex:1 1 100%}.relance-form .btn{min-height:44px}}

/* accès par partie du CRM */
fieldset.access{border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem .5rem;margin:.6rem 0}
fieldset.access legend{padding:0 .4rem;font-weight:600;font-size:.9rem}
fieldset.access .check{display:flex;align-items:center;gap:.5rem;margin:.3rem 0}

/* projets */
.b-p-devis_accepte{background:#E6EEF8;color:#1E4E8C}.b-p-a_planifier{background:#FFF3D6;color:#8A5A00}.b-p-planifiee{background:#E3F3F6;color:#0B6E80}.b-p-effectuee{background:#E3F4EB;color:#1B6B45}
.b-p-complementaire{background:#F1E8FA;color:#6A3BA0}.b-p-rapport_commence{background:#E8EEF9;color:#2B4FA3}.b-p-rapport_final{background:#D9F2E3;color:#13633B}.b-p-clos{background:#EEF0F3;color:#5A6472}
.b-p-en_attente{background:#FDEBD8;color:#A04B00}.b-p-annule{background:#FBE9E9;color:#A12B2B}
.retard{color:#B3261E;font-weight:600}.retard.small{font-size:.8rem}
.projets-filters{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end}.projets-filters .vues{margin-left:auto;display:flex;gap:.3rem}
.chip-user{display:inline-block;background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:.05rem .55rem;font-size:.8rem;margin:.1rem .1rem 0 0}
.parcours{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;margin:.4rem 0 1rem;padding:0}.parcours li{font-size:.8rem;padding:.25rem .65rem;border-radius:99px;background:var(--bg);border:1px solid var(--line);color:var(--muted)}
.parcours li.fait{background:#E3F4EB;color:#1B6B45;border-color:transparent}.parcours li.en-cours{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
.projet-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:1rem;align-items:start}.projet-main,.projet-side{display:flex;flex-direction:column;gap:1rem;min-width:0}.projet-main .card,.projet-side .card{margin:0}
@media(max-width:900px){.projet-grid{grid-template-columns:minmax(0,1fr)}.projet-side{order:-1}}
.projet-status,.projet-upload,.projet-comment{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end}.projet-status label,.projet-upload label,.projet-comment label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem}.projet-status .grow,.projet-comment label{flex:1 1 16rem}
@media(max-width:700px){.projet-status label,.projet-status .btn,.projet-upload label,.projet-upload .btn,.projet-comment .btn{flex:1 1 100%}}
details.edit{margin:.6rem 0 0}details.edit summary{cursor:pointer;color:var(--accent,#12879B);font-weight:600}details.edit form{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}
.contact{border-top:1px solid var(--line);padding:.6rem 0}.contact-vals{display:flex;flex-wrap:wrap;gap:.3rem .9rem;margin-top:.2rem}.contact-vals a{white-space:nowrap}
.contact-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(11rem,100%),1fr));gap:.5rem;border-top:1px dashed var(--line);padding:.5rem 0}.contact-row textarea{width:100%}
.interv{list-style:none;margin:0;padding:0}.interv li{padding:.35rem 0;border-top:1px solid var(--line)}.interv li:first-child{border-top:0}
.assignes{list-style:none;margin:0 0 .6rem;padding:0}.assignes li{display:flex;align-items:center;gap:.5rem;padding:.25rem 0}.assign-other{margin-top:.7rem;display:flex;flex-direction:column;gap:.4rem}
.av-lg{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--ink);color:#fff;font-size:.75rem;font-weight:600}
.projet-files{list-style:none;margin:.8rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(8.5rem,100%),1fr));gap:.7rem}.projet-files li{position:relative;display:flex;flex-direction:column;gap:.2rem;font-size:.8rem}
.projet-files img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.projet-files .fileico{display:grid;place-items:center;aspect-ratio:1;border-radius:8px;border:1px solid var(--line);background:var(--bg)}.projet-files .fname{word-break:break-word}
.projet-files form{position:absolute;top:.2rem;right:.2rem}.projet-files form .icon{background:#fff;border-radius:50%}
.timeline{list-style:none;margin:1rem 0 0;padding:0;border-left:2px solid var(--line)}.timeline li{position:relative;padding:.4rem 0 .8rem 1rem}.timeline li::before{content:"";position:absolute;left:-.4rem;top:.7rem;width:.7rem;height:.7rem;border-radius:50%;background:var(--line)}
.timeline li.t-commentaire::before{background:var(--accent,#12879B)}.timeline li.t-statut::before{background:var(--ink)}.t-body{white-space:normal;word-break:break-word}
.kanban{display:flex;gap:.8rem;overflow-x:auto;padding-bottom:.6rem;align-items:flex-start}.kan-col{flex:0 0 17rem;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:.6rem}.kan-col h2{font-size:.9rem;margin:0 0 .5rem}.kan-col h2 small{color:var(--muted)}
.kan-card{display:flex;flex-direction:column;gap:.15rem;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.55rem .65rem;margin-bottom:.5rem;color:inherit;text-decoration:none}.kan-card .av{display:flex;gap:.2rem;margin-top:.2rem}.kan-card .av i{font-style:normal;display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--ink);color:#fff;font-size:.65rem}
.partage-projets{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.partage .btn-block{text-align:left}

/* projets : pleine largeur, listes du tableau de bord, liste, dates */
.projet-new{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(22rem,100%),1fr));gap:.9rem 1.4rem;align-items:start}.projet-new>label,.projet-new>fieldset{margin:0}.projet-new>fieldset,.projet-new>.btn{grid-column:1 / -1}
.projets-table{table-layout:auto;width:100%}.projets-table th,.projets-table td{vertical-align:top}.projets-table .c-num{white-space:nowrap;width:7.5rem}.projets-table .c-obj{width:34%;min-width:16rem;word-break:break-word;overflow-wrap:anywhere}.projets-table .c-cli{min-width:11rem;width:18%;overflow-wrap:anywhere}
.projets-table .c-st{white-space:nowrap;width:11rem}.projets-table .c-as{min-width:9rem}.projets-table .c-dt{white-space:nowrap;width:8.5rem}.projets-table .obj-link{color:inherit;text-decoration:none;font-weight:500}.projets-table .obj-link:hover{text-decoration:underline}
.statut-bars{list-style:none;margin:0;padding:0}.statut-bars li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem .6rem;align-items:center;padding:.35rem 0}.statut-bars .st-label{min-width:0}.statut-bars .st-label .badge{max-width:100%;white-space:normal;line-height:1.25}
.statut-bars .st-n{font-size:1.05rem}.statut-bars .bar{grid-column:1 / -1;height:7px;background:var(--bg);border-radius:99px;overflow:hidden}.statut-bars .bar i{display:block;height:100%;background:var(--ink);border-radius:99px}
.pj-list{list-style:none;margin:.2rem 0 0;padding:0}.pj-row{display:grid;grid-template-columns:7.5rem minmax(0,1fr) auto auto;gap:.3rem 1.1rem;align-items:center;padding:.7rem 0;border-top:1px solid var(--line)}.pj-row:first-child{border-top:0}
.pj-row.pj-dated{grid-template-columns:10.5rem 7.5rem minmax(0,1fr) auto}.pj-charge .pj-row{grid-template-columns:2.4rem minmax(0,1fr) auto}
.pj-num{font-weight:600;white-space:nowrap}.pj-main{display:flex;flex-direction:column;min-width:0;gap:.1rem}.pj-obj{color:inherit;text-decoration:none;font-weight:500;overflow-wrap:anywhere}.pj-obj:hover{text-decoration:underline}.pj-main small{overflow-wrap:anywhere}
.pj-date{display:flex;flex-direction:column}.pj-date b{font-size:.95rem;white-space:nowrap}.pj-date small{color:var(--muted);font-size:.78rem}.pj-row.is-late .pj-date b{color:#B3261E}
.pj-side{display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:.1rem;white-space:nowrap}.pj-side small{font-size:.75rem}.pj-stat{white-space:nowrap}.pj-age{background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:.1rem .6rem;font-size:.8rem}
@media(max-width:760px){.pj-row,.pj-row.pj-dated{grid-template-columns:auto minmax(0,1fr);gap:.2rem .8rem;padding:.8rem 0}.pj-row.pj-dated .pj-date{grid-column:1 / -1;flex-direction:row;align-items:baseline;gap:.6rem}.pj-row.pj-dated .pj-num{grid-column:1}
  .pj-row .pj-stat,.pj-row .pj-side{grid-column:1 / -1;align-items:flex-start;text-align:left;flex-direction:row;gap:.6rem;white-space:normal}.pj-charge .pj-row{grid-template-columns:2.4rem minmax(0,1fr)}.pj-charge .pj-row .pj-main{grid-column:2}.pj-charge .pj-row .pj-side{grid-column:2}
  .projets-table .c-obj{min-width:12rem;width:auto}}
.date-field{position:relative;display:inline-flex;align-items:center;gap:.3rem;max-width:100%}.date-field .date-text{width:9.5rem;flex:1 1 auto}.date-field .date-btn{flex:0 0 auto;display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;color:inherit}
.date-field .date-native{position:absolute;right:0;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0}

.remise-input{display:flex;gap:.4rem;align-items:stretch}.remise-input input{flex:1 1 auto;min-width:0}.remise-input select{flex:0 0 4.2rem}

/* projets : historique général */
.histo-filters{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end}.histo-filters label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem}
.histo-table td{vertical-align:top}.histo-table .h-when{white-space:nowrap;width:6.5rem}.histo-table .h-when small{display:block}.histo-table .h-who{white-space:nowrap;width:10rem}.histo-table .h-proj{min-width:14rem;width:28%}.histo-table .h-proj .obj{overflow-wrap:anywhere}
.histo-table .h-act{white-space:nowrap;width:10rem}.histo-table .h-act small{display:block;font-size:.72rem;white-space:normal;margin-top:.2rem}.histo-table .h-det{min-width:16rem;overflow-wrap:anywhere}
.h-t-creation{background:#E6EEF8;color:#1E4E8C}.h-t-statut{background:#E8EEF9;color:#2B4FA3}.h-t-assignation,.h-t-desassignation{background:#F1E8FA;color:#6A3BA0}.h-t-contact{background:#E3F3F6;color:#0B6E80}
.h-t-commentaire{background:#E3F4EB;color:#1B6B45}.h-t-retrait{background:#FBE9E9;color:#A12B2B}.h-t-fichier{background:#FFF3D6;color:#8A5A00}.h-t-intervention{background:#E3F4EB;color:#1B6B45}.h-t-info{background:#EEF0F3;color:#5A6472}.h-t-devis,.h-t-facture{background:#FDEBD8;color:#A04B00}

.hrow-link{color:inherit;text-decoration:none;border-radius:8px;margin:.5rem -.4rem;padding:.15rem .4rem}.hrow-link:hover{background:var(--bg)}
.period-chip{display:inline-flex;flex-wrap:wrap;gap:.4rem;align-items:center;background:#E8F4F6;color:#0B5966;border-radius:99px;padding:.25rem .8rem;font-size:.85rem;margin:.2rem 0 .8rem}.period-chip a{color:inherit;font-weight:600}

.chip-projet{display:inline-flex;align-items:center;gap:.3rem;background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:.1rem .6rem;font-size:.8rem;text-decoration:none;white-space:nowrap}.c-projet form{margin:0}

/* liste des devis : colonne « Projet » compacte (icônes) pour que le tableau tienne dans la page et que les actions de droite restent visibles */
table.list th.c-projet,table.list td.c-projet{width:3.2rem;text-align:center;padding-left:.3rem;padding-right:.3rem}
.icon-projet{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;border:1px solid var(--line);background:#fff;color:inherit;cursor:pointer;padding:0;text-decoration:none}
.icon-projet svg{width:1rem;height:1rem}.icon-projet.is-linked{background:#E3F3F6;color:#0B6E80;border-color:transparent}.icon-projet.is-add{border-style:dashed;color:var(--muted)}.icon-projet.is-add:hover{border-style:solid;color:var(--ink);background:var(--bg)}
table.list th,table.list td{padding-left:.6rem;padding-right:.6rem}

.ndf-progress{width:100%;height:10px;border-radius:99px;overflow:hidden;appearance:none;-webkit-appearance:none;background:var(--bg)}.ndf-progress::-webkit-progress-bar{background:var(--bg);border-radius:99px}.ndf-progress::-webkit-progress-value{background:var(--ink);border-radius:99px}.ndf-progress::-moz-progress-bar{background:var(--ink);border-radius:99px}

.ndf-split{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:flex-end;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;margin:.6rem 0}.ndf-split label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem}.ndf-split small{flex-basis:100%}

/* notes de frais : barre d'actions groupées */
.ndf-selcell{width:2.2rem}.ndf-bulkbar{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:flex-end;margin-top:.8rem;position:sticky;bottom:.6rem;z-index:5;box-shadow:0 6px 20px rgba(11,37,69,.12)}
.ndf-bulkbar label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem}.ndf-bulkbar .ndf-bulk-count{align-self:center}.ndf-bulkbar .muted{align-self:center}.ndf-bulkbar:not(.has-selection){opacity:.85}
@media(max-width:700px){.ndf-bulkbar label,.ndf-bulkbar .btn{flex:1 1 100%}}

.tab.pager-gap{border-color:transparent;background:transparent;padding-left:.2rem;padding-right:.2rem;color:var(--muted)}

/* présence mensuelle */
.b-pres-ok{background:var(--ok-bg);color:var(--ok)}.b-pres-warn{background:#FFF3DC;color:#8A5A00}.b-pres-none{background:#EEF2F6;color:#4A5B70}
.pres-card{max-width:900px}.pres-summary{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}.pres-summary .kpi{margin:0}.pres-summary input[type=number]{width:6rem;font-size:1.4rem;font-weight:600;margin-top:.3rem}
#pres-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.3rem}.pres-chip{display:inline-block;background:#FFF3DC;color:#8A5A00;border-radius:999px;padding:.05rem .55rem;font-size:.8rem}
.pres-range-row{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:flex-end;margin:.6rem 0}.pres-range-row label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem}
.pres-table td,.pres-table th{padding:.4rem .6rem}.pres-table select{width:100%;min-width:11rem}.pres-table input.pres-note{width:100%;min-width:9rem}
.pres-row.is-we td{background:#E9EBEE;color:var(--muted)}.pres-row.is-jf td.pres-day{background:#FDEBD8}.pres-row.need-note input.pres-note{border-color:#D9822B;background:#FFF7EE}.pres-row.need-note.missing input.pres-note{border-color:var(--danger);background:#FDEDED}
.pres-row select.pres-code[data-code="AA"],.pres-row select.pres-code[data-code="CEF"]{background:#FDEBD8}.pres-row select.pres-code[data-code="CP"]{background:#E8F1FB}.pres-row select.pres-code[data-code="M"],.pres-row select.pres-code[data-code="AT"]{background:#FBE9E9}.pres-row select.pres-code[data-code="F"],.pres-row select.pres-code[data-code="RTT"],.pres-row select.pres-code[data-code="CSS"]{background:#F1E8FA}.pres-row select.pres-code[data-code="JF"]{background:#FDEBD8}
.pres-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:.4rem 1rem;margin:.4rem 0 1rem}.pres-people .badge{margin-left:.3rem}
.pres-actions{margin-top:1rem}
@media(max-width:700px){.pres-summary{grid-template-columns:1fr}.pres-table select{min-width:0}}

/* photos de profil : la photo remplace les initiales */
.avatar.has-photo{background:transparent;overflow:hidden;padding:0}.avatar img,.av i img,.av-lg img{width:100%;height:100%;display:block;border-radius:50%;object-fit:cover}.av i,.av-lg{overflow:hidden}
.avatar-edit{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:.4rem 0 1rem}.avatar-edit .avatar{width:72px;height:72px;font-size:1.4rem}

.pres-extra-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:1rem;margin:1rem 0}.pres-extra-kpis .kpi{margin:0}

.actions-wrap{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}.actions-wrap form{margin:0}table.list td.actions{white-space:normal;min-width:7rem}

.actions-wrap .btn{width:auto;flex:0 0 auto}

/* fiches de paie */
.row-new td{background:#FFF9EB}.paie-doc{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;margin:.2rem 0}.paie-doc form{margin:0}.paie-upload{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.paie-upload input[type=file]{width:auto;max-width:15rem;margin:0}
.paie-doc .btn,.paie-upload .btn{width:auto;flex:0 0 auto}

/* ===== Interface : accessibilité, tactile, téléphone ===== */
.skip-link{position:absolute;left:.6rem;top:-3rem;z-index:100;background:var(--navy);color:#fff;padding:.55rem .9rem;border-radius:8px;text-decoration:none;font-weight:600;transition:top .15s}.skip-link:focus{top:.6rem}
#contenu:focus{outline:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media (pointer:coarse){
  .btn,button.btn,select,input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=file]),.tab,summary{min-height:44px}
  .btn-sm{min-height:40px;padding-top:.5rem;padding-bottom:.5rem}
  table.list td a,table.table td a{display:inline-block;padding:.35rem 0}
  input[type=checkbox],input[type=radio]{width:1.15rem;height:1.15rem}
}
@media (max-width:560px){
  .kpis,.kpis-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
  .kpi{padding:.75rem .8rem}.kpi-big{font-size:1.3rem;overflow-wrap:anywhere}.kpi-sub,.kpi-label{font-size:.78rem}
  .filters{gap:.5rem}.filters select,.filters input:not([type=checkbox]),.filters label{flex:1 1 calc(50% - .5rem);min-width:0;width:auto}
  .filters input[type=search],.filters .grow{flex:1 1 100%}
  .page-head{flex-wrap:wrap;gap:.6rem}.page-head .btn,.page-head form{max-width:100%}
  .tabs,.ndf-tabs,.pres-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.tabs .tab,.ndf-tabs .tab{flex:0 0 auto;white-space:nowrap}
}
@media (max-width:700px){
  /* tableaux en cartes */
  table.stack-sm,table.stack-sm tbody,table.stack-sm tr,table.stack-sm td{display:block;width:100%}
  table.stack-sm thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table.stack-sm tr{border:1px solid var(--line);border-radius:12px;margin:0 0 .7rem;padding:.35rem .2rem;background:#fff;box-shadow:0 1px 2px rgba(13,43,78,.04)}
  table.stack-sm td{display:flex;justify-content:space-between;align-items:center;gap:.8rem;text-align:right;border:0;padding:.38rem .7rem;white-space:normal;min-width:0}
  table.stack-sm td[data-label]::before{content:attr(data-label);flex:0 0 38%;max-width:42%;text-align:left;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
  table.stack-sm td.chk{justify-content:flex-start;padding-bottom:0}
  table.stack-sm td.actions,table.stack-sm td:not([data-label]){justify-content:flex-end}
  table.stack-sm td .actions-wrap{justify-content:flex-end}
  table.stack-sm td[colspan]{display:block;text-align:center}
  .table-scroll,.table-card{overflow:visible;background:none;border:0;box-shadow:none;padding:0}
  .card.table-card{padding:0}
}

/* ===== Débordements (téléphone) ===== */
select,input,textarea{max-width:100%}.filters label,.card,.dash-grid>*,.g2>*,.g3>*,.g4>*,.hrow>*{min-width:0}
.filters label select,.line-add select,.line-add input{width:100%;min-width:0;max-width:100%}
@media (max-width:900px){.dash-grid,.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}.line-add{flex-wrap:wrap}.line-add>*{flex:1 1 100%}}
.paie-upload input[type=file]{max-width:100%;min-width:0}.paie-upload{min-width:0;max-width:100%}
@media (max-width:560px){.hrow{grid-template-columns:72px minmax(0,1fr) auto;gap:.4rem}.hval{font-size:.8rem;min-width:0}.hlabel{font-size:.8rem;min-width:0;overflow-wrap:anywhere}}
@media (max-width:560px){.hval{white-space:normal;overflow-wrap:anywhere}}
@media (max-width:700px){table.stack-sm td.td-empty{display:none}}
@media (max-width:700px){table.stack-sm td{flex-wrap:wrap}table.stack-sm td>div:not(.actions-wrap){flex:1 1 100%;text-align:right}table.stack-sm td>.badge+.badge{margin-left:.3rem}}

/* double authentification */
.qr-box{display:flex;justify-content:center;padding:.6rem;background:#fff;border:1px solid var(--line);border-radius:12px;max-width:260px;margin:.6rem auto}.qr-box img{width:216px;height:216px;image-rendering:pixelated}
.totp-secret{display:block;padding:.6rem .8rem;background:#F1F5F9;border-radius:8px;font-size:1.05rem;letter-spacing:.08em;overflow-wrap:anywhere;user-select:all}
.recovery-codes{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;max-width:22rem}.recovery-codes li{background:#F1F5F9;border-radius:8px;padding:.55rem .7rem;text-align:center}.recovery-codes code{font-size:1.1rem;letter-spacing:.1em;user-select:all}
.totp-policy{display:flex;flex-direction:column;gap:.3rem;margin-bottom:1rem}

/* ===== Cloche de notifications ===== */
.brand-wrap{position:relative}.side-bell{position:absolute;bottom:6px;right:10px;z-index:3}.top-bell{margin-left:auto;display:none}
.bell{position:relative;background:rgba(255,255,255,.12);border:0;color:#fff;border-radius:10px;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.bell:hover{background:rgba(255,255,255,.2)}.bell svg.i{width:1.3em;height:1.3em}
.bell-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#E5484D;color:#fff;font-size:.68rem;font-weight:700;line-height:18px;text-align:center;box-shadow:0 0 0 2px var(--navy)}.bell-badge[hidden]{display:none}
.bell-panel{position:fixed;z-index:70;width:min(380px,calc(100vw - 20px));max-height:min(70vh,520px);overflow:auto;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(13,43,78,.28)}.bell-panel[hidden]{display:none}
.bell-head{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.8rem 1rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}.bell-head .link{background:none;border:0;color:var(--teal);cursor:pointer;font:inherit;font-size:.82rem;padding:0}
.bell-row{display:flex;flex-direction:column;gap:.15rem;padding:.7rem 1rem;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;cursor:pointer}.bell-row:hover{background:#F8FAFC}.bell-row.unread{background:#F1F8FA;border-left:3px solid var(--teal)}.bell-text{font-size:.86rem;color:var(--muted)}.bell-empty{padding:1rem}
.bell-foot{display:block;text-align:center;padding:.7rem;font-weight:600;text-decoration:none}
.notif-list{padding:0;overflow:hidden}.notif-item{display:flex;align-items:center;gap:.8rem;margin:0;padding:.2rem 1rem;border-bottom:1px solid var(--line)}.notif-item:last-child{border-bottom:0}.notif-item.unread{background:#F1F8FA}
.notif-ico{flex:0 0 auto;width:36px;height:36px;border-radius:10px;background:var(--teal-l);color:var(--teal);display:inline-flex;align-items:center;justify-content:center}
.notif-body{flex:1;background:none;border:0;text-align:left;font:inherit;color:inherit;cursor:pointer;padding:.7rem 0;display:flex;flex-direction:column;gap:.15rem}.notif-text{color:var(--muted);font-size:.9rem}.notif-dot{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:#E5484D}
@media (max-width:900px){.side-bell{display:none}.top-bell{display:inline-flex}}

/* ===== Fiches de paie : dépôt en masse ===== */
.paie-bulk .dropzone{display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center;padding:1.6rem 1rem;cursor:pointer}
.paie-progress{margin:.8rem 0}.paie-bar{height:8px;border-radius:4px;background:#E2E8F0;overflow:hidden}.paie-bar span{display:block;height:100%;width:0;background:var(--teal);transition:width .2s}
.paie-summary{font-weight:600;margin:.8rem 0}.paie-msg{display:block;margin-top:.2rem}.paie-row-skip td{background:#FAFAF5}.paie-row-err td{background:#FFF7F6}
.paie-matrix th,.paie-matrix td{text-align:center;padding:.45rem .35rem}.paie-matrix td:first-child,.paie-matrix th:first-child{text-align:left;white-space:nowrap}
.paie-matrix-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:1rem 1rem 0}.paie-matrix-head h2{margin:0}
.pm{text-decoration:none;font-weight:700}.pm-ok{color:#15803D}.pm-new{color:#E5484D}.pm-miss{color:#94A3B8}.pm-future{color:#CBD5E1}
.paie-indiv summary{cursor:pointer;padding:.2rem 0}.paie-indiv[open] summary{margin-bottom:.6rem}.paie-month-form{margin:.4rem 0 .8rem}

.paie-bulk .dropzone{min-height:0;padding:1.1rem 1rem;gap:.25rem}.paie-bulk .dropzone small{max-width:46rem}
#paie-preview-table td{vertical-align:middle}#paie-preview-table select{min-width:11.5rem;max-width:100%}#paie-preview-table td:last-child select{min-width:9.5rem}
#paie-preview-table{table-layout:auto}#paie-preview-table td.paie-file{white-space:normal;overflow-wrap:anywhere;min-width:12rem;max-width:22rem;font-size:.88rem}#paie-preview-table td:nth-child(2){min-width:9.5rem}
@media (max-width:700px){.table-scroll.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}}

/* ===== Indices des devis et factures ===== */
.indice-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .8rem;margin:0 0 1rem}
.itab{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .8rem;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink);background:#fff}.itab:hover{background:#F8FAFC}.itab.on{background:var(--navy);color:#fff;border-color:var(--navy)}.itab.on .muted{color:#CBD5E1}
.indice-banner a{text-decoration:underline}
.doc-fieldset{border:0;padding:0;margin:0;min-width:0}.doc-readonly{opacity:.92}.doc-readonly input:disabled,.doc-readonly select:disabled,.doc-readonly textarea:disabled{background:#F8FAFC;color:var(--ink);-webkit-text-fill-color:var(--ink);opacity:1}
.doc-readonly .sticky-actions,.doc-readonly .dropzone-hint{display:none}.doc-readonly .line-add,.doc-readonly .row-tools,.doc-readonly [data-action]{display:none}

.pres-row.is-hc td{background:#F1F5F9;color:#64748B}.contrat-form{margin-bottom:1rem}.contrat-indet{align-self:end;padding-bottom:.6rem}.pres-hc-note{margin:.6rem 0}

/* ===== Équipements réservables ===== */
.equip-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:1rem 1rem 0}.equip-nav h2{margin:0}
.equip-grid th,.equip-grid td{padding:.25rem;text-align:center;border:1px solid var(--line);font-size:.8rem}.equip-grid th.equip-name{text-align:left;min-width:12rem;background:#fff;position:sticky;left:0;z-index:1}
.equip-day{min-width:2.6rem;color:var(--muted);font-weight:500;line-height:1.15}.equip-day.we{background:#F4F6F8}.equip-day.today,.equip-free.today{box-shadow:inset 0 0 0 2px var(--teal)}
.equip-free{background:#F7FBF7;height:2.4rem}.equip-free.we{background:#F4F6F8}.equip-free a{display:block;height:2.4rem;min-width:2.4rem}.equip-free a:hover{background:#DDF0E0}
.equip-busy{height:2.4rem;font-size:.78rem;overflow:hidden;white-space:nowrap;cursor:default}.equip-busy.mine{box-shadow:inset 0 -3px 0 var(--navy)}
.equip-th{display:flex;align-items:center;gap:.6rem}.equip-th img,.equip-thumb{border-radius:6px;object-fit:cover}.equip-ph{display:inline-flex;align-items:center;justify-content:center;width:40px;height:30px;background:#F1F5F9;border-radius:6px;color:var(--muted)}td .equip-ph{width:64px;height:48px}
.resa-list{list-style:none;margin:0;padding:0}.resa-list li{display:flex;justify-content:space-between;gap:.8rem;align-items:center;flex-wrap:wrap;padding:.6rem 0;border-bottom:1px solid var(--line)}.resa-list li:last-child{border-bottom:0}
tr.is-archived td{opacity:.6}.equip-form{margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--line)}.equip-cols{align-items:start}
@media (max-width:640px){.equip-grid th.equip-name{min-width:6.5rem;max-width:7.5rem}.equip-th img,.equip-th .equip-ph{display:none}.equip-th strong{font-size:.78rem}.equip-day{min-width:2.3rem}}
section.table-card>h2{padding:1rem 1rem .2rem;margin:0}

/* ===== Listes à recherche (select[data-searchable]) ===== */
.ss{position:relative;flex:1;min-width:0}
.ss-native{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;pointer-events:none}
.ss-input{margin:0}
.ss-list{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 3px);max-height:17rem;overflow:auto;background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:0 10px 28px rgba(13,43,78,.16);margin:0;padding:.25rem;list-style:none}
.ss-list li{padding:.5rem .65rem;border-radius:6px;cursor:pointer;line-height:1.3}
.ss-list li.on{background:#E3F1F5}.ss-list li[aria-selected=true]{font-weight:600}.ss-list li.ss-ph{color:var(--muted)}
.ss-list li.ss-empty{color:var(--muted);cursor:default;font-size:.9rem}

.auth-card h1.wordmark{font-family:var(--font-h);font-weight:600;font-size:2rem;line-height:1;letter-spacing:.26em;padding-left:.26em;color:var(--navy);margin:.2rem 0 0}
.auth-card h1.wordmark::after{content:"";display:block;width:36px;height:3px;border-radius:3px;background:var(--teal);margin:.6rem auto 0}

/* ===== Petits écrans (≤ 520 px) : les petits tableaux de la page d'accueil se resserrent au lieu de dépasser de l'écran ===== */
@media (max-width:520px){
  .mini{font-size:.8rem;table-layout:auto}
  .mini th,.mini td{padding:.4rem .25rem;overflow-wrap:anywhere}
  .mini th.num,.mini td.num{white-space:normal;text-align:right}
  .mini th{font-size:.62rem;letter-spacing:.02em}
}
fieldset{min-width:0}
@media (max-width:520px){.btn{max-width:100%;white-space:normal;text-align:center}}
