/* 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:10px;font-family:var(--font-h);font-weight:600;font-size:.82rem;letter-spacing:.06em;color:#fff}
.brand-name b,.topbar-name b{color:var(--teal);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]{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:.9rem;letter-spacing:.05em}
  .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(190px,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}
