/*
 * SignFlow : styles front (tableau de bord membre + page de signature).
 * v1.4.0 : refonte visuelle. 2026-09-30 : charte bleue RU (accent #1d5c8f,
 * texte #0e2438, jetons --ru-* de RU Design), texte blanc sur la couleur principale.
 * Les noms de classes sf- restent identiques a app.js (aucune logique modifiee).
 */
:root{
  --sf-brand:var(--ru-accent,#1d5c8f);--sf-brand-dark:var(--ru-accent-fonce,#174a73);--sf-brand-soft:var(--ru-accent-doux,rgba(44,111,181,.12));--sf-brand-ink:var(--ru-sur-accent,#FFFFFF);
  --sf-ink:#1e293b;--sf-ink-sub:#64748b;--sf-line:#e2e8f0;--sf-bg:#f8fafc;--sf-surface:#fff;
  --sf-green:#16a34a;--sf-green-soft:#dcfce7;--sf-amber:#d97706;--sf-amber-soft:#FFF4E5;
  --sf-gray:#64748b;--sf-gray-soft:#f1f5f9;--sf-gray-400:#94a3b8;--sf-red:#dc2626;--sf-red-soft:#fee2e2;
  --sf-radius:14px;--sf-radius-sm:9px;
}
.signflow-root,.sf-sign-page{
  --sf-brand:var(--ru-accent,#1d5c8f);--sf-brand-dark:var(--ru-accent-fonce,#174a73);--sf-brand-soft:var(--ru-accent-doux,rgba(44,111,181,.12));--sf-brand-ink:var(--ru-sur-accent,#FFFFFF);
  --sf-ink:#1e293b;--sf-ink-sub:#64748b;--sf-line:#e2e8f0;--sf-bg:#f8fafc;--sf-surface:#fff;
  --sf-green:#16a34a;--sf-green-soft:#dcfce7;--sf-amber:#d97706;--sf-amber-soft:#FFF4E5;
  --sf-gray:#64748b;--sf-gray-soft:#f1f5f9;--sf-gray-400:#94a3b8;--sf-red:#dc2626;--sf-red-soft:#fee2e2;
  --sf-radius:14px;--sf-radius-sm:9px;
  /* MÊME pile que le hub des abonnés (body{font-family:'Inter',sans-serif}) :
     si Inter n'est pas chargée, on retombe sur la MÊME police que les autres
     modules (Offres, Bottin) au lieu de Segoe UI. Sinon le titre et la
     description ne « s'écrivent » pas pareil que les autres. */
  --sf-font:var(--ru-police,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif);
  font-family:var(--sf-font);color:var(--sf-ink);line-height:1.5;-webkit-font-smoothing:antialiased;
}
.signflow-root *,.sf-sign-page *{box-sizing:border-box}
.signflow-notice{font-family:var(--sf-font);background:var(--sf-amber-soft);border:1px solid #F5C99B;color:#92400e;padding:14px 18px;border-radius:var(--sf-radius-sm);font-size:14px}

/* Conteneur general */
.signflow-root{background:var(--sf-surface);border:1px solid var(--sf-line);border-radius:14px;overflow:hidden;box-shadow:0 4px 24px rgba(15,23,42,.05)}

/* Chargement */
.sf-loading{padding:60px 20px;text-align:center;color:var(--sf-ink-sub);font-family:var(--sf-font)}
.sf-spinner{width:34px;height:34px;border:3px solid var(--sf-line);border-top-color:var(--sf-brand);border-radius:50%;margin:0 auto 14px;animation:sf-spin .8s linear infinite}
@keyframes sf-spin{to{transform:rotate(360deg)}}

/* En-tete du tableau de bord */
.sf-dash-header{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:24px 28px;border-bottom:1px solid var(--sf-line);background:linear-gradient(180deg,#fbfcfe,#fff)}
.sf-dash-title{font-size:21px;font-weight:800;letter-spacing:-.02em}

/* Boutons */
.sf-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--sf-radius-sm);font-family:var(--sf-font);font-weight:700;font-size:13.5px;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:.15s;line-height:1.2}
.sf-btn-primary{background:var(--sf-brand);color:var(--sf-brand-ink,var(--ru-sur-accent,#FFFFFF))}
.sf-btn-primary:hover{background:var(--sf-brand-dark);color:var(--sf-brand-ink,var(--ru-sur-accent,#FFFFFF))}
.sf-btn-outline{background:var(--sf-surface);color:var(--sf-ink);border-color:var(--sf-line)}
.sf-btn-outline:hover{background:var(--sf-gray-soft)}
.sf-btn-success{background:var(--sf-green);color:#fff}
.sf-btn-success:hover{filter:brightness(.95);color:#fff}
.sf-btn-danger{background:var(--sf-red);color:#fff}
.sf-btn-danger:hover{filter:brightness(.95);color:#fff}
.sf-btn-danger-text{background:none;border:none;color:var(--sf-red);cursor:pointer;font-family:var(--sf-font);font-weight:600;font-size:13px;padding:6px 4px}
.sf-btn-danger-text:hover{text-decoration:underline}
.sf-btn:disabled{opacity:.6;cursor:default}

/* Statistiques */
.sf-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;padding:22px 28px}
.sf-stat-card{background:var(--sf-surface);border:1px solid var(--sf-line);border-radius:var(--sf-radius);padding:16px 18px}
.sf-stat-label{font-size:12px;color:var(--sf-ink-sub);font-weight:600;margin-bottom:8px}
.sf-stat-value{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1}

/* Table des documents */
.sf-table-wrap{padding:6px 28px 28px;overflow-x:auto}
.sf-table{width:100%;border-collapse:collapse;font-size:14px}
.sf-table thead th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--sf-ink-sub);font-weight:700;padding:12px 14px;border-bottom:1px solid var(--sf-line);background:#fafbfc}
.sf-table tbody td{padding:14px;border-bottom:1px solid var(--sf-line);vertical-align:middle}
.sf-table tbody tr:last-child td{border-bottom:none}
.sf-table tbody tr:hover{background:#fafbfc}
.sf-table td:last-child{text-align:right;white-space:nowrap}
.sf-table .sf-btn{padding:7px 12px;font-size:12.5px;margin-left:6px}

/* Pastilles de statut */
.sf-badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:20px;background:var(--sf-gray-soft);color:var(--sf-gray)}
.sf-badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.sf-badge-signed{background:var(--sf-green-soft);color:var(--sf-green)}
.sf-badge-pending,.sf-badge-partial{background:var(--sf-amber-soft);color:var(--sf-amber)}
.sf-badge-draft{background:var(--sf-gray-soft);color:var(--sf-gray)}
.sf-badge-expired,.sf-badge-cancelled{background:var(--sf-red-soft);color:var(--sf-red)}

/* Overlay + modale */
.sf-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);display:none;align-items:flex-start;justify-content:center;padding:5vh 16px;z-index:2147483000;overflow-y:auto}
.sf-overlay.sf-open{display:flex}
.sf-modal{background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.28);width:100%;max-width:560px;font-family:var(--sf-font);overflow:hidden;animation:sf-pop .18s ease}
@keyframes sf-pop{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}
.sf-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--sf-line);font-size:16px;font-weight:800}
.sf-modal-header .sf-btn{padding:6px 10px}
.sf-modal-body{padding:20px 22px;max-height:64vh;overflow-y:auto}
.sf-modal-body label{display:block;font-size:12px;font-weight:700;color:var(--sf-ink-sub);margin:0 0 6px;text-transform:uppercase;letter-spacing:.04em}
.sf-modal-body input[type=text],.sf-modal-body input[type=email],.sf-modal-body select{width:100%;padding:10px 12px;border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);font-family:var(--sf-font);font-size:14px;margin-bottom:14px;outline:none;transition:.15s}
.sf-modal-body input:focus,.sf-modal-body select:focus{border-color:var(--sf-brand);box-shadow:0 0 0 3px var(--sf-brand-soft)}
.sf-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--sf-line)}

/* Choix de modele / element selectionnable */
.sf-field-item{display:flex;align-items:center;gap:13px;padding:14px 16px;border:1.5px solid var(--sf-line);border-radius:12px;margin-bottom:10px;cursor:pointer;transition:.15s}
.sf-field-item:hover{border-color:#cbd5e1;background:#fafbfc}
.sf-field-item.sf-signed{border-color:var(--sf-brand);background:var(--sf-brand-soft)}

/* Liste des signataires */
.sf-signers-list{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.sf-signers-list .sf-signer-row{display:flex;gap:8px;align-items:center}
.sf-signers-list input{margin-bottom:0}

/* Upload PDF */
.sf-pdf-file{width:100%;padding:16px;border:1.5px dashed var(--sf-line);border-radius:12px;background:#fafbfc;font-family:var(--sf-font);cursor:pointer}
.sf-upload-status{font-size:13px;color:var(--sf-ink-sub);margin-top:8px}

/* Notifications */
.sf-toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:100001}
.sf-toast-container>div{background:var(--sf-ink);color:#fff;padding:12px 18px;border-radius:var(--sf-radius-sm);font-family:var(--sf-font);font-size:13.5px;box-shadow:0 8px 24px rgba(15,23,42,.25);animation:sf-pop .18s ease}

/* ============================================================
   PAGE DE SIGNATURE
   ============================================================ */
.sf-sign-page{background:var(--sf-bg);min-height:100vh;padding:20px}
.sf-sign-layout{display:grid;grid-template-columns:1fr 340px;gap:20px;max-width:1200px;margin:0 auto;align-items:start}
.sf-sign-doc-area{background:var(--sf-surface);border:1px solid var(--sf-line);border-radius:var(--sf-radius);padding:18px;min-height:400px}
.sf-sign-page-wrap{position:relative;margin:0 auto 18px;box-shadow:0 2px 12px rgba(15,23,42,.1);background:#fff}
.sf-sign-pdf-canvas{display:block;width:100%;height:auto}
.sf-sign-page-number{font-family:var(--sf-font);font-size:11px;color:var(--sf-ink-sub);text-align:center;margin-bottom:8px;font-weight:600}
.sf-sign-field-box{position:absolute;box-sizing:border-box;border:2px dashed var(--ru-bord-2,rgba(0,0,0,.16));background:var(--ru-accent-doux,rgba(44,111,181,.12));border-radius:6px;padding:2px;overflow:auto}
.sf-sign-field-clickable{cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:var(--sf-font);font-size:12px;font-weight:700;color:var(--ru-texte,#0e2438);transition:.15s}
.sf-sign-field-clickable:hover{background:var(--ru-accent-doux,rgba(44,111,181,.12))}
.sf-sign-field-auto{border-style:solid;border-color:var(--sf-green);background:rgba(22,163,74,.08)}

/* Panneau lateral */
.sf-sign-panel{background:var(--sf-surface);border:1px solid var(--sf-line);border-radius:var(--sf-radius);padding:22px;position:sticky;top:20px;font-family:var(--sf-font)}
.sf-sign-panel-top{margin-bottom:16px}
.sf-sign-panel-footer{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.sf-sign-order-banner{background:var(--sf-brand-soft);color:var(--ru-texte,#0e2438);border-radius:var(--sf-radius-sm);padding:10px 14px;font-size:12.5px;font-weight:600;margin-bottom:14px}
.sf-sign-consent{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--sf-ink-sub);margin:14px 0}
.sf-consent-checkbox{margin-top:2px;accent-color:var(--sf-brand);width:16px;height:16px;flex-shrink:0}
.sf-signing-mode,.sf-show-order{font-size:13px}

/* Zone de trace de signature */
.sf-sig-canvas{width:100%;height:180px;border:1.5px solid var(--sf-line);border-radius:var(--sf-radius-sm);background:#fff;touch-action:none;cursor:crosshair}

/* Verification 2FA */
.sf-2fa-gate{background:var(--sf-surface);border:1px solid var(--sf-line);border-radius:var(--sf-radius);padding:28px;max-width:440px;margin:40px auto;text-align:center;font-family:var(--sf-font)}

/* Refus */
.sf-decline-reason{width:100%;min-height:90px;padding:12px;border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);font-family:var(--sf-font);font-size:14px;resize:vertical}
.sf-decline-error{color:var(--sf-red);font-size:13px;margin-top:8px}

@media(max-width:900px){.sf-sign-layout{grid-template-columns:1fr}.sf-sign-panel{position:static}}
@media(max-width:600px){.sf-dash-header{padding:18px}.sf-stats-grid,.sf-table-wrap{padding-left:16px;padding-right:16px}}

/* ============================================================
   v1.4.2 : barre de navigation membre + onglets
   ============================================================ */
.sf-navband{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:20px 28px 14px;background:linear-gradient(180deg,#fbfcfe,#fff)}
/* Dans la coque d'un hub : seulement les boutons, à droite, sans fond propre. */
.sf-navband--coque{justify-content:flex-end;padding:0 0 12px;background:none}
.sf-brand{display:flex;align-items:center;gap:14px}
.sf-brand-mark{width:36px;height:36px;border-radius:10px;background:var(--ru-accent,#1d5c8f);display:flex;align-items:center;justify-content:center;color:var(--ru-sur-accent,#FFFFFF);font-size:17px;flex-shrink:0}
.sf-brand-title{font-size:19px;font-weight:700;line-height:1.15;color:var(--ru-texte,#0e2438);margin:0}
.sf-brand-sub{font-size:13px;color:var(--ru-discret,#6b7280);line-height:1.45;margin:3px 0 0;max-width:560px}
.sf-nav{display:flex;align-items:center;gap:2px;padding:0 16px;border-bottom:1px solid var(--sf-line);flex-wrap:wrap}
.sf-nav-tab{display:inline-flex;align-items:center;gap:8px;padding:12px 15px;background:none;border:none;border-bottom:2.5px solid transparent;font-family:var(--sf-font);font-weight:600;font-size:13.5px;color:var(--sf-ink-sub);cursor:pointer;transition:.15s}
.sf-nav-tab:hover{color:var(--sf-ink)}
.sf-nav-tab.active{color:var(--ru-texte,#0e2438);border-bottom-color:var(--sf-brand)}
.sf-nav-badge{font-size:11px;background:var(--sf-amber-soft);color:var(--sf-amber);padding:1px 8px;border-radius:20px;font-weight:800}
.sf-tab-content{padding:6px 0 6px}
.sf-tab-content .sf-stats-grid{padding-top:22px}
.sf-empty{text-align:center;padding:44px 20px;color:var(--sf-gray-400);font-size:14px}

/* Onglet A signer */
.sf-tosign-list{display:flex;flex-direction:column;gap:10px;padding:22px 28px 28px}
.sf-tosign-card{display:flex;align-items:center;gap:16px;padding:15px 18px;border:1px solid var(--sf-line);border-radius:var(--sf-radius);transition:.15s}
.sf-tosign-card:hover{border-color:#cbd5e1;box-shadow:0 3px 12px rgba(15,23,42,.05)}
.sf-tosign-main{flex:1;min-width:0}
.sf-tosign-title{font-weight:700;font-size:14.5px}
.sf-tosign-meta{font-size:12.5px;color:var(--sf-ink-sub);margin-top:2px}

/* Onglet Modeles */
.sf-tpl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;padding:22px 28px 28px}
.sf-tpl-card{display:flex;flex-direction:column;gap:14px;padding:20px;border:1px solid var(--sf-line);border-radius:var(--sf-radius);background:var(--sf-surface);transition:.15s}
.sf-tpl-card:hover{border-color:var(--ru-accent-filet,rgba(44,111,181,.45));box-shadow:0 4px 16px rgba(15,23,42,.06)}
.sf-tpl-name{font-weight:700;font-size:15px}

/* ============================================================
   v1.4.5 : éditeur de champs en front (page [signflow_fields])
   ============================================================ */
.sf-fields-front{padding:22px 26px 30px}
.sf-fields-topbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.sf-fields-title{font-size:18px;font-weight:800;letter-spacing:-.02em}
.sf-fields-help{font-size:13px;color:var(--sf-ink-sub);margin:0 0 18px}
.sf-field-editor{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start}
.sf-fe-sidebar{background:var(--sf-surface);border:1px solid var(--sf-line);border-radius:var(--sf-radius);padding:18px}
.sf-fe-sidebar h3{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--sf-ink-sub);margin:16px 0 8px;font-weight:700}
.sf-fe-sidebar h3:first-child{margin-top:0}
.sf-fe-sidebar select{width:100%;padding:9px 11px;border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);font-family:var(--sf-font);font-size:13.5px}
.sf-fe-palette{display:flex;flex-direction:column;gap:8px}
.sf-fe-palette-title{margin:8px 0 0;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--sf-ink-sub)}
.sf-fe-palette-item{display:flex;align-items:center;gap:9px;padding:11px 13px;border:1.5px solid var(--sf-line);border-radius:var(--sf-radius-sm);cursor:grab;font-size:13.5px;font-weight:600;background:var(--sf-surface);transition:.15s}
.sf-fe-palette-item:hover{border-color:var(--sf-brand);background:var(--sf-brand-soft);color:var(--ru-texte,#0e2438)}
.sf-fe-page-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sf-fields-front .button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border-radius:var(--sf-radius-sm);border:1px solid var(--sf-line);background:var(--sf-surface);font-family:var(--sf-font);font-size:13px;font-weight:600;color:var(--sf-ink);cursor:pointer;text-decoration:none}
.sf-fields-front .button:hover{background:var(--sf-gray-soft)}
.sf-fields-front .button-primary{background:var(--sf-brand);border-color:var(--sf-brand);color:var(--sf-brand-ink,var(--ru-sur-accent,#FFFFFF))}
.sf-fields-front .button-primary:hover{background:var(--sf-brand-dark);color:var(--sf-brand-ink,var(--ru-sur-accent,#FFFFFF))}
.sf-fields-front .description{font-size:12px;color:var(--sf-ink-sub)}
.sf-fe-canvas-wrap{background:var(--sf-surface);border:1px solid var(--sf-line);border-radius:var(--sf-radius);padding:16px;min-height:420px;position:relative;overflow:auto}
.sf-fe-page{position:relative;margin:0 auto}
.sf-fe-pdf-canvas{display:block;max-width:100%;margin:0 auto;box-shadow:0 2px 12px rgba(15,23,42,.12)}
.sf-fe-page-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--sf-gray-400);font-size:14px;text-align:center;padding:20px;pointer-events:none}
.sf-fe-field-chip{position:absolute;border:2px solid var(--sf-brand);background:var(--ru-accent-doux,rgba(44,111,181,.12));border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--ru-texte,#0e2438);cursor:move}
.sf-fe-field-chip.is-selected{box-shadow:0 0 0 3px var(--ru-accent-filet,rgba(44,111,181,.45));z-index:4}
.sf-fe-field-chip-close{position:absolute;top:-9px;right:-9px;width:20px;height:20px;border-radius:50%;background:var(--sf-red);color:#fff;border:none;font-size:12px;cursor:pointer;line-height:1}
.sf-fe-field-chip-resize{position:absolute;bottom:-6px;right:-6px;width:12px;height:12px;background:var(--sf-brand);border-radius:2px;cursor:nwse-resize}
.sf-fe-inspector{padding:12px;border:1px solid var(--sf-line);background:#f8fafc;border-radius:var(--sf-radius-sm);font-size:12px;color:var(--sf-ink-sub)}
.sf-fe-inspector>strong{display:block;color:var(--sf-ink);margin-bottom:10px}.sf-fe-inspector-control{display:block;margin:9px 0}.sf-fe-inspector-control>span{display:block;font-size:11px;font-weight:700;color:var(--sf-ink-sub);margin:0 0 4px}.sf-fe-inspector input:not([type=checkbox]),.sf-fe-inspector textarea,.sf-fe-inspector select{box-sizing:border-box;width:100%;padding:7px 8px;border:1px solid var(--sf-line);border-radius:6px;background:#fff;font:inherit}.sf-fe-inspector textarea{resize:vertical}.sf-fe-inspector-check{display:block;margin:9px 0;color:var(--sf-ink);font-weight:600}.sf-fe-inspector-note{margin:8px 0;color:var(--sf-ink-sub);line-height:1.45}
.sf-fe-save-status{font-size:12.5px;color:var(--sf-ink-sub)}
@media(max-width:820px){.sf-field-editor{grid-template-columns:1fr}}

/* ============================================================
   v1.4.6 : page autonome de l'éditeur (sans header/footer du thème)
   ============================================================ */
body.sf-standalone{background:var(--sf-bg);margin:0}
body.sf-standalone .sf-standalone-main{max-width:1180px;margin:0 auto;padding:24px 20px 60px}
body.sf-standalone .signflow-root{box-shadow:0 4px 24px rgba(15,23,42,.06)}

/* ============================================================
   v1.5.1 : onglet Modèles côté membre (bibliothèque Word)
   ============================================================ */
.sf-tpl-wrap{padding:22px 28px 28px}
.sf-tpl-intro{font-size:13.5px;color:var(--sf-ink-sub);margin-bottom:16px}
.sf-tpl-add{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 16px;border:1.5px dashed var(--sf-line);border-radius:var(--sf-radius);background:#fafbfc;margin-bottom:8px}
.sf-tpl-name-input{flex:1;min-width:180px;padding:9px 12px;border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);font-family:var(--sf-font);font-size:13.5px;outline:none}
.sf-tpl-name-input:focus{border-color:var(--sf-brand);box-shadow:0 0 0 3px var(--sf-brand-soft)}
.sf-tpl-hint{font-size:12px;color:var(--sf-ink-sub)}
.sf-tpl-add-status{font-size:12.5px;color:var(--sf-ink-sub);min-height:16px;margin-bottom:12px}
.sf-tpl-add-status.sf-tpl-err{color:var(--sf-red)}
.sf-btn-word{background:var(--ru-accent,#1d5c8f);border-color:var(--ru-accent,#1d5c8f);color:var(--ru-sur-accent,#FFFFFF)}
.sf-btn-word:hover{background:var(--ru-accent-fonce,#174a73);color:var(--ru-sur-accent,#FFFFFF)}
.sf-tpl-card-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:2px}

/* ============================================================
   v1.5.4 : panneau Gérer un document en attente
   ============================================================ */
.sf-manage-hint{font-size:13px;color:var(--sf-ink-sub);margin-bottom:14px}
.sf-manage-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--sf-line)}
.sf-manage-fields{display:flex;flex-direction:column;gap:6px;flex:1;min-width:200px}
.sf-manage-input{padding:8px 11px;border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);font-family:var(--sf-font);font-size:13.5px;outline:none}
.sf-manage-input:focus{border-color:var(--sf-brand);box-shadow:0 0 0 3px var(--sf-brand-soft)}
.sf-manage-msg{font-size:12.5px;color:var(--sf-ink-sub);min-height:15px;margin:2px 0 0}
.sf-manage-msg.sf-manage-ok{color:var(--sf-green)}
.sf-manage-msg.sf-manage-err{color:var(--sf-red)}

/* ============================================================
   v1.5.7 : barre Retournez sur RU + logo (pages autonomes)
   ============================================================ */
.sf-ru-topbar{position:relative;z-index:10;display:flex;align-items:center;gap:16px;padding:12px 22px;background:#fff;border-bottom:1px solid var(--sf-line)}
.sf-ru-logo{height:38px;width:auto;object-fit:contain}
.sf-ru-back{margin-left:auto}
.sf-brand-logo{height:40px;max-height:40px;width:auto;min-width:118px;object-fit:contain;object-position:left center;border-radius:0}

/* ============================================================
   v1.6.3 : lexique des statuts
   ============================================================ */
.sf-legend{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:12px 16px;margin-top:6px;font-size:12px;color:var(--sf-ink-sub);background:var(--sf-gray-soft);border-radius:var(--sf-radius-sm)}
.sf-legend-title{font-weight:800;color:var(--sf-ink)}
.sf-legend b{color:var(--sf-ink);font-weight:700}
.sf-legend-sep{color:var(--sf-gray-400)}

/* ============================================================
   v1.6.4 : modale Gérer (layout propre + ajout/retrait signataires)
   ============================================================ */
.sf-btn-sm{padding:7px 12px;font-size:12px}
.sf-manage-card{border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);padding:12px 14px;margin-bottom:10px;background:#fff}
.sf-manage-fields{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.sf-manage-fields .sf-manage-input{flex:1;min-width:150px}
.sf-manage-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sf-manage-add{margin-top:16px;padding-top:14px;border-top:1px dashed var(--sf-line)}
.sf-manage-add-title{font-weight:800;font-size:13px;margin-bottom:8px}

/* ============================================================
   v1.8.0 : page publique de signature + bouton lien public
   ============================================================ */
.sf-public-wrap{display:flex;justify-content:center;padding:40px 16px}
.sf-public-card{background:var(--sf-surface);border:1px solid var(--sf-line);border-radius:var(--sf-radius);box-shadow:0 8px 40px rgba(15,23,42,.08);max-width:460px;width:100%;padding:34px 32px;text-align:center}
.sf-public-logo{height:52px;width:auto;object-fit:contain;margin-bottom:16px}
.sf-public-title{font-size:22px;font-weight:800;margin-bottom:8px}
.sf-public-lead{font-size:13.5px;color:var(--sf-ink-sub);margin-bottom:20px}
.sf-public-error{color:var(--sf-red);font-size:14px}
.sf-public-form{display:flex;flex-direction:column;gap:11px;text-align:left}
.sf-public-input{padding:11px 13px;border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);font-family:var(--sf-font);font-size:14px;outline:none}
.sf-public-input:focus{border-color:var(--sf-brand);box-shadow:0 0 0 3px var(--sf-brand-soft)}
.sf-public-btn{width:100%;justify-content:center;padding:12px}
.sf-public-msg{font-size:12.5px;color:var(--sf-ink-sub);min-height:16px;text-align:center}
.sf-public-msg.sf-err{color:var(--sf-red)}
.sf-public-wrap .screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sf-public-wrap .sf-public-btn:disabled{opacity:.6;cursor:wait}
.sf-link-box{display:flex;gap:8px;margin-top:6px}
.sf-link-box input{flex:1;padding:9px 11px;border:1px solid var(--sf-line);border-radius:var(--sf-radius-sm);font-size:12.5px;font-family:var(--sf-font);background:var(--sf-gray-soft)}

/* ============================================================
   v1.9.0 : réglages d'envoi par utilisateur
   ============================================================ */
.sf-navband-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sf-email-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.sf-email-field{display:flex;flex-direction:column;gap:4px}
.sf-email-field:first-child{grid-column:1 / -1}
.sf-email-label{font-size:11px;font-weight:700;color:var(--sf-ink-sub);text-transform:uppercase;letter-spacing:.03em}
.sf-email-grid .sf-manage-input{width:100%}
@media(max-width:560px){.sf-email-grid{grid-template-columns:1fr}}

/* v2.0.0 : fenêtre Voir + Remplacer le PDF */
.sf-modal-lg{max-width:760px;width:94%}
.sf-view-meta{margin-bottom:12px}
.sf-view-h{margin:16px 0 8px;font-size:13px;font-weight:800;color:var(--sf-ink,var(--ru-texte,#0e2438));text-transform:uppercase;letter-spacing:.04em}
.sf-view-list{display:flex;flex-direction:column;gap:6px}
.sf-view-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;font-size:13.5px}
.sf-view-tag{font-size:11px;font-weight:700;color:#475569;background:#fff;border:1px solid #e5e7eb;padding:3px 9px;border-radius:20px;white-space:nowrap}
.sf-view-empty{font-size:13px;color:#94a3b8;margin:0}
.sf-view-pdf{margin-top:6px;min-height:120px;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;background:#f1f5f9;color:#64748b;font-size:13px;display:flex;align-items:center;justify-content:center}
.sf-view-iframe{width:100%;height:520px;border:0;display:block}
.sf-replace-choice{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.sf-replace-opt{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;color:#334155;cursor:pointer;line-height:1.4}
.sf-replace-opt input{margin-top:3px;flex-shrink:0}

/* v2.1.0 : envoi en masse */
.sf-bulk-ta{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #cbd5e1;border-radius:8px;font-family:inherit;font-size:13.5px;resize:vertical;min-height:120px}
.sf-bulk-csvrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0}
.sf-bulk-csvlabel{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--ru-texte,#0e2438);background:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;padding:8px 12px;cursor:pointer}
.sf-bulk-csv{display:none}
.sf-bulk-csvhint{font-size:12px;color:#94a3b8}
.sf-bulk-count{font-size:13px;font-weight:700;color:#15803d;margin:4px 0}

/* v2.2.0 : clés d'API */
.sf-apikey-create{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}
.sf-apikey-create .sf-manage-input{flex:1;min-width:200px}
.sf-apikey-secret{margin:12px 0;padding:14px;background:var(--ru-accent-doux,rgba(44,111,181,.12));border:1px solid var(--ru-accent-filet,rgba(44,111,181,.45));border-radius:10px}
.sf-apikey-warn{font-size:12.5px;font-weight:700;color:#854d0e;margin-bottom:8px}
.sf-apikey-secretrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sf-apikey-code{flex:1;min-width:220px;background:var(--ru-surface,#F6F6F4);border:1px solid var(--ru-bord,rgba(0,0,0,.10));color:var(--ru-texte,#0e2438);padding:9px 12px;border-radius:8px;font-family:ui-monospace,monospace;font-size:12.5px;word-break:break-all}
.sf-apikey-meta{font-size:11px;color:#94a3b8}
.sf-btn-xs{padding:4px 10px;font-size:11px}

/* v2.3.0 : disposition des actions (action principale + menu) et mode carte mobile */
.sf-actions-cell{white-space:nowrap}
.sf-table td.sf-actions-cell{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.sf-btn-icon{padding:7px 10px;line-height:1}
.sf-menu-toggle{padding:7px 11px;font-weight:700;line-height:1}

.sf-menu-pop{position:fixed;z-index:100000;min-width:230px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 14px 40px rgba(15,23,42,.18);padding:6px;display:flex;flex-direction:column;gap:2px}
.sf-menu-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:none;border:0;padding:9px 11px;border-radius:8px;font:inherit;font-size:13.5px;color:var(--ru-texte,#0e2438);cursor:pointer;text-decoration:none;white-space:nowrap}
.sf-menu-item:hover,.sf-menu-item:focus{background:#f1f5f9;color:var(--ru-texte,#0e2438)}
.sf-menu-item-danger{color:#b91c1c}
.sf-menu-item-danger:hover,.sf-menu-item-danger:focus{background:#fef2f2;color:#b91c1c}
.sf-menu-sep{height:1px;background:#e5e7eb;margin:5px 4px}

/* Mobile : le tableau devient des cartes, plus aucun defilement lateral. */
@media(max-width:760px){
  .sf-table-wrap{overflow-x:visible}
  .sf-table{border:0}
  .sf-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .sf-table,.sf-table tbody,.sf-table tr,.sf-table td{display:block;width:100%}
  .sf-table tr{border:1px solid #e5e7eb;border-radius:14px;padding:12px 14px;margin-bottom:12px;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.05)}
  .sf-table td{border:0;padding:6px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}
  .sf-table td::before{content:attr(data-label);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;flex-shrink:0}
  .sf-table td:first-child{padding-top:0;font-size:15px}
  .sf-table td:first-child::before{display:none}
  .sf-table td:first-child{justify-content:flex-start}
  .sf-table td.sf-actions-cell{padding:12px 0 0;margin-top:8px;border-top:1px solid #f1f5f9;justify-content:flex-start;flex-wrap:wrap}
  .sf-table td.sf-actions-cell::before{display:none}
  .sf-table td.sf-actions-cell .sf-btn-primary{flex:1;justify-content:center}
}

/* v2.8.0 : signataire rattache a un compte du reseau */
.sf-member-tag{display:inline-block;margin-left:8px;font-size:10px;font-weight:800;letter-spacing:.03em;color:#854d0e;background:var(--ru-accent-doux,rgba(44,111,181,.12));border:1px solid var(--ru-accent-filet,rgba(44,111,181,.45));border-radius:20px;padding:2px 8px;vertical-align:1px;white-space:nowrap}

/* v1.1.0 : offre d'achat et badge du hub */
.sf-offer{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:14px 0 4px;padding:18px 20px;background:linear-gradient(135deg,var(--ru-accent-doux,rgba(44,111,181,.12)),#fff);border:1px solid var(--ru-accent-filet,rgba(44,111,181,.45));border-radius:16px}
.sf-offer-ic{font-size:28px;line-height:1;flex-shrink:0}
.sf-offer-txt{flex:1;min-width:220px}
.sf-offer-t{font-size:15.5px;font-weight:800;color:var(--ru-texte,#0e2438)}
.sf-offer-s{font-size:13.5px;color:#475569;margin-top:3px}
.sf-offer-btns{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:640px){.sf-offer-btns{width:100%}.sf-offer-btns .sf-btn{flex:1;justify-content:center}}

/* v1.4.1 : indication au-dessus d'une liste. La classe etait utilisee sans
   jamais avoir ete definie : le texte sortait colle, sans marge. */
.sf-hint{margin:0 0 14px;padding:11px 14px;background:#f8fafc;border:1px solid #e5e7eb;border-left:3px solid var(--sf-brand,var(--ru-accent,#1d5c8f));border-radius:8px;font-size:13.5px;color:#475569;line-height:1.55}
.sf-empty{margin:18px 0;padding:26px 20px;text-align:center;color:#94a3b8;font-size:14px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px}
.sf-await{display:inline-flex;align-items:center;font-size:12px;font-weight:600;color:#a16207;background:var(--ru-accent-doux,rgba(44,111,181,.12));border:1px solid var(--ru-accent-filet,rgba(44,111,181,.45));border-radius:20px;padding:5px 11px;white-space:nowrap}

/* ============================================================
   Charte Reseau Underground (hub des abonnes) : accent jaune de
   marque, boutons noirs a texte jaune, onglet actif souligne en
   jaune. Objectif : conformite visuelle avec les autres plugins
   RU (Bottin, PR Radio, PR Podcast). Portee LIMITEE a
   .signflow-root : la page de signature suit la couleur principale
   des reglages (accent bleu de la charte par defaut), avec cadres nets pour la
   visibilite des champs. Aucun markup modifie.
   ============================================================ */
.signflow-root{
  --sf-brand:var(--ru-accent,#1d5c8f);--sf-brand-dark:var(--ru-accent-fonce,#174a73);--sf-brand-soft:var(--ru-accent-doux,rgba(44,111,181,.12));--sf-brand-ink:var(--ru-sur-accent,#FFFFFF);
}
.signflow-root .sf-btn-primary{color:var(--sf-brand-ink,var(--ru-sur-accent,#FFFFFF))}
.signflow-root .sf-btn-primary:hover{color:var(--sf-brand-ink,var(--ru-accent,#1d5c8f))}
.signflow-root .sf-nav-tab.active{color:var(--ru-texte,#0e2438);border-bottom-color:var(--ru-accent,#1d5c8f)}
.signflow-root .sf-brand-mark{background:var(--ru-accent,#1d5c8f);color:var(--ru-sur-accent,#FFFFFF)}
.signflow-root .sf-brand-logo{height:40px;max-height:40px;min-width:118px;object-fit:contain;object-position:left center}

/* Champ manquant mis en evidence apres un clic sur « Aller au prochain champ manquant » :
   ring jaune RU + pulsation courte, s'efface tout seul apres 1.8s. Guide l'oeil
   sans changer le style d'origine du champ, indispensable sur les documents longs. */
.sf-sign-field-pulse{animation:sfFieldPulse 0.6s ease-in-out 3;box-shadow:0 0 0 4px var(--ru-accent-filet,rgba(44,111,181,.45)),0 0 22px 6px var(--ru-accent-filet,rgba(44,111,181,.45));border-color:var(--ru-accent-filet,rgba(44,111,181,.45));background:var(--ru-accent-doux,rgba(44,111,181,.12));z-index:5}
@keyframes sfFieldPulse{0%,100%{box-shadow:0 0 0 4px var(--ru-accent-filet,rgba(44,111,181,.45)),0 0 22px 6px var(--ru-accent-filet,rgba(44,111,181,.45))}50%{box-shadow:0 0 0 8px var(--ru-accent-doux,rgba(44,111,181,.12)),0 0 34px 10px var(--ru-accent-doux,rgba(44,111,181,.12))}}

/* Champs de formulaire avances sur la page publique de signature. */
.sf-sign-native-input{box-sizing:border-box;width:100%;height:100%;min-height:30px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:var(--ru-texte,#0e2438);padding:5px 7px;font:inherit;font-size:12px;resize:none}
.sf-sign-choice-group{display:flex;flex-direction:column;gap:3px;max-height:100%;overflow:auto;padding:3px 5px;font-size:12px;color:var(--ru-texte,#0e2438);background:rgba(255,255,255,.88);border-radius:5px}.sf-sign-choice{display:flex;align-items:flex-start;gap:4px;font-size:12px;line-height:1.25;color:var(--ru-texte,#0e2438);cursor:pointer}.sf-sign-choice input{margin:2px 0 0}.sf-sign-upload-btn{min-height:30px;padding:6px 8px;font-size:11px}.sf-sign-upload-status{display:block;margin-top:3px;font-size:10px;line-height:1.2;color:#475569;word-break:break-word}

/* Pied du tableau de bord (lien de verification), sobre et discret. */
.sf-dash-footer a:hover{color:var(--ru-texte,#0e2438);text-decoration:underline}

/* -- Onglet Modèles v1.0 : disposition à 2 colonnes + catégories + tags ---- */
.sf-tpl-layout{display:grid;grid-template-columns:240px 1fr;gap:22px}
@media(max-width:900px){.sf-tpl-layout{grid-template-columns:1fr}}
.sf-tpl-side{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:14px;height:fit-content;position:sticky;top:16px}
.sf-tpl-catbox+.sf-tpl-catbox{margin-top:16px;padding-top:14px;border-top:1px solid #e5e7eb}
.sf-tpl-side-title{font-size:10.5px;font-weight:800;color:#94a3b8;letter-spacing:1.5px;text-transform:uppercase;padding:4px 12px 10px}
.sf-tpl-cat{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:8px;font-size:13.5px;color:#475569;cursor:pointer}
.sf-tpl-cat:hover{background:#f1f5f9}
.sf-tpl-cat.active{background:var(--ru-accent-doux,rgba(44,111,181,.12));color:var(--ru-texte,#0e2438);font-weight:700}
.sf-tpl-cat-count{font-size:11px;color:#94a3b8;font-weight:600;font-variant-numeric:tabular-nums}
.sf-tpl-cat.active .sf-tpl-cat-count{color:#a16207}

.sf-tpl-main{min-width:0}
.sf-tpl-filters{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:14px 16px;margin-bottom:16px}
.sf-tpl-search-row{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.sf-tpl-search{flex:1;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit}
.sf-tpl-add-btn{white-space:nowrap}
.sf-tpl-tags-label{font-size:10.5px;font-weight:800;color:#94a3b8;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:8px}
.sf-tpl-chips{display:flex;flex-wrap:wrap;gap:6px}
.sf-tpl-chip{display:inline-flex;align-items:center;padding:5px 10px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;font-size:12px;color:#475569;font-weight:600;cursor:pointer}
.sf-tpl-chip:hover{background:#e2e8f0}
.sf-tpl-chip.active{background:var(--ru-accent,#1d5c8f);color:var(--ru-sur-accent,#FFFFFF);border-color:var(--ru-accent,#1d5c8f)}

.sf-tpl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media(max-width:960px){.sf-tpl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.sf-tpl-grid{grid-template-columns:1fr}}
.sf-tpl-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px}
.sf-tpl-card:hover{box-shadow:0 8px 22px rgba(15,23,42,.06);border-color:#cbd5e1}
.sf-tpl-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.sf-tpl-card-name{font-size:14px;font-weight:700;line-height:1.35;color:var(--ru-texte,#0e2438);word-break:break-word}
.sf-tpl-card-meta{display:flex;flex-wrap:wrap;gap:4px}
.sf-tpl-tag{display:inline-block;padding:2px 7px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;font-size:11px;color:#64748b;font-weight:600}
.sf-tpl-type{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.sf-tpl-type-pdf{background:#fef2f2;color:#b91c1c}
.sf-tpl-type-docx{background:#f1f1f1;color:var(--ru-texte,#0e2438)}
.sf-tpl-type-unknown{background:#f1f5f9;color:#475569}
.sf-tpl-scope{font-size:11px;color:#94a3b8;font-weight:600}
.sf-tpl-scope-global{color:var(--ru-sur-accent,#FFFFFF);background:var(--ru-accent,#1d5c8f);padding:3px 6px;border-radius:4px;font-weight:700}
.sf-tpl-note{background:var(--ru-accent-doux,rgba(44,111,181,.12));border:1px solid var(--ru-accent-filet,rgba(44,111,181,.45));color:#854d0e;padding:6px 8px;border-radius:6px;font-size:11.5px;line-height:1.4}
.sf-tpl-card-actions{display:flex;gap:6px;margin-top:auto}
.sf-tpl-card-actions>*{flex:1}
.sf-tpl-card-actions .sf-btn-sm{padding:8px 10px;font-size:12px}

/* v1.0 - Importer un PDF depuis la page de positionnement (brouillon sans PDF,
   ex. prepare depuis RU Support). Evite l'ecran blanc : bouton + glisser-deposer. */
.sf-fe-import{position:absolute;inset:12px;display:flex;align-items:center;justify-content:center;border:2px dashed var(--sf-line,#cbd5e1);border-radius:14px;background:rgba(148,163,184,.06)}
.sf-fe-import.is-drag{border-color:var(--ru-accent-filet,rgba(44,111,181,.45));background:var(--ru-accent-doux,rgba(44,111,181,.12))}
.sf-fe-import-inner{max-width:420px;text-align:center;padding:24px}
.sf-fe-import-ic{font-size:40px;line-height:1;margin-bottom:8px}
.sf-fe-import-inner h4{margin:0 0 6px;font-size:16px;color:var(--sf-ink,var(--ru-texte,#0e2438))}
.sf-fe-import-inner p{margin:0 0 14px;font-size:13px;color:var(--sf-gray-500,#64748b);line-height:1.5}
.sf-fe-import-btn{cursor:pointer}

/* Livraison 9 : icônes au trait (SignFlow\Helpers\Icones), à la place des émojis. */
.sf-ico{display:inline-block;vertical-align:-3px;flex:none}

/* Livraison 7, lot B : styles autrefois écrits en ligne par app.js (même apparence, jetons --ru-*). */
.sf-m-04cd32{width:100%;padding:9px;margin-bottom:14px;border:1px solid var(--ru-bord,rgba(0,0,0,.10));border-radius:6px;box-sizing:border-box}
.sf-m-093b6e{text-align:center;padding:24px;color:var(--ru-discret,#6b7280);font-size:13px}
.sf-m-22ebf3{width:100%;padding:9px;border:1px solid var(--ru-bord,rgba(0,0,0,.10));border-radius:6px;box-sizing:border-box}
.sf-m-34567c{font-size:13px;color:var(--ru-discret,#6b7280);padding:20px;text-align:center}
.sf-m-4730ff{width:100%;padding:9px;border:1px solid var(--ru-bord,rgba(0,0,0,.10));border-radius:6px}
.sf-m-5204f2{display:block;font-size:12px;color:var(--ru-texte-2,#14314b);margin-bottom:4px}
.sf-m-6b78e3{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.sf-m-772fa9{font-size:12px;color:var(--ru-discret,#6b7280);margin-top:8px}
.sf-m-7c3d3a{width:100%;padding:9px;border:1px solid var(--ru-bord,rgba(0,0,0,.10));border-radius:6px;font-family:inherit;resize:vertical}
.sf-m-7ede82{font-size:13px;color:var(--ru-texte-2,#14314b);margin:0 0 10px}
.sf-m-88cf0e{font-size:12.5px;color:var(--ru-erreur,#b42318);margin-top:12px;min-height:18px}
.sf-m-91482e{font-size:12.5px;color:var(--ru-discret,#6b7280);margin:0 0 14px;line-height:1.5}
.sf-m-9645ee{font-size:12px;color:var(--ru-discret,#6b7280);margin-top:3px}
.sf-m-96da91{margin-top:8px;background:none;border:none;color:var(--ru-texte,#0e2438);text-decoration:underline;cursor:pointer}
.sf-m-af223d{font-size:12px;color:var(--ru-texte-2,#14314b);margin:8px 0 0}
.sf-m-b4a5d9{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--ru-texte,#0e2438);margin-top:14px;line-height:1.4;cursor:pointer}
.sf-m-b80a37{background:var(--ru-surface-2,#F4F4F5);border:1px solid var(--ru-bord,rgba(0,0,0,.10));border-radius:8px;padding:10px 12px;margin-top:6px;font-size:12px;color:var(--ru-texte,#0e2438);line-height:1.5}
.sf-m-bc8099{color:var(--ru-erreur,#b42318)}
.sf-m-c8a710{display:block;font-size:12px;font-weight:600;color:var(--ru-texte-2,#14314b);margin-bottom:4px}
.sf-m-cd4ee3{max-height:520px;overflow-y:auto}
.sf-m-d0555b{text-align:center;padding:40px;color:var(--sf-gray-400)}
.sf-m-d5a7b9{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ru-texte-2,#14314b);margin-top:8px}
.sf-m-d6167d{width:100%;justify-content:center}
.sf-m-dd78af{font-size:12px;color:var(--ru-erreur,#b42318);margin:6px 0 0}
.sf-m-e18409{margin-top:2px;flex-shrink:0}
.sf-m-e695c9{width:100%;margin-bottom:14px}
.sf-m-f53f39{font-size:11px;color:var(--ru-discret-2,#9ca3af);margin:4px 0 0}
.sf-m-f6314d{font-size:12px;margin-top:8px}
.sf-m-fd86c8{font-size:13px;color:var(--ru-texte,#0e2438);background:var(--ru-accent-doux,rgba(44,111,181,.12));border:1px solid var(--ru-accent-filet,rgba(44,111,181,.45));border-radius:8px;padding:10px 12px;margin-bottom:8px}
.sf-m-02648a{font-size:13px;color:var(--ru-texte-2,#14314b);text-decoration:none;font-weight:600}
.sf-m-11e1b8{color:var(--ru-discret,#6b7280);font-size:14px;margin:0 0 24px}
.sf-m-13076d{text-align:center}
.sf-m-1eb712{max-width:420px;margin:60px auto;padding:32px;text-align:center}
.sf-m-213d35{display:flex;flex-direction:column;gap:10px;align-items:center;margin-top:12px}
.sf-m-213d35[hidden]{display:none}
.sf-m-287ed3{color:var(--ru-texte,#0e2438);text-decoration:underline}
.sf-m-2e9183{width:100%;padding:9px;margin-bottom:14px;border:1px solid var(--ru-bord,rgba(0,0,0,.10));border-radius:6px}
.sf-m-3618ed{margin-left:auto;font-family:ui-monospace,monospace;font-size:10px;color:var(--ru-discret-2,#9ca3af)}
.sf-m-4b0451{width:100%;padding:9px 12px;border:1px solid var(--ru-bord,rgba(0,0,0,.10));border-radius:8px;font-size:13px;margin-bottom:14px;box-sizing:border-box}
.sf-m-4bc6b6{margin-right:6px;display:inline-flex;vertical-align:-3px;color:var(--ru-texte-2,#14314b)}
.sf-m-57d51e{flex:1;padding:8px;border:1px solid var(--ru-bord,rgba(0,0,0,.10));border-radius:6px}
.sf-m-5b06a6{text-align:center;color:var(--ru-discret,#6b7280);font-size:12px}
.sf-m-5bc568{font-size:13px;color:var(--ru-discret,#6b7280);min-height:18px;margin:0 0 12px}
.sf-m-5c3d62{padding:8px 4px;font-size:13px;font-weight:700;color:var(--ru-texte,#0e2438);display:flex;justify-content:space-between}
.sf-m-6b9c17{font-size:12px}
.sf-m-713771{position:fixed;bottom:24px;right:24px;z-index:999999;display:flex;flex-direction:column;gap:8px}
.sf-m-720846{width:100%;justify-content:center;margin-top:10px}
.sf-m-78a561{font-size:12.5px;color:var(--ru-discret,#6b7280);margin:0 0 10px}
.sf-m-832986{font-size:24px;letter-spacing:6px;text-align:center;padding:10px;width:180px;border:1px solid var(--ru-bord,rgba(0,0,0,.10));border-radius:8px;font-family:monospace}
.sf-m-9363f8{font-size:11.5px;color:var(--ru-discret-2,#9ca3af);margin:6px 0 0}
.sf-m-9ff629{z-index:100010}
.sf-m-ae9cf7{font-size:11px;color:var(--ru-discret,#6b7280);font-weight:600}
.sf-m-b088d3{margin:28px 0 12px;padding:14px 16px;text-align:center;border-top:1px solid var(--sf-line,var(--ru-bord,rgba(0,0,0,.10)))}
.sf-m-ba666b{background:var(--ru-surface-2,#F4F4F5);border:1px solid var(--ru-bord,rgba(0,0,0,.10));border-radius:8px;padding:9px 12px;margin-bottom:14px;font-size:12px;color:var(--ru-texte-2,#14314b);line-height:1.45}
.sf-m-be3718{font-size:12px;color:var(--ru-erreur,#b42318);margin:8px 0 6px;min-height:16px;text-align:center;line-height:1.35}
.sf-m-ca184a{font-size:12.5px;color:var(--ru-discret,#6b7280)}
.sf-m-cbe292{border-bottom:1px solid var(--ru-bord,rgba(0,0,0,.10));margin-bottom:6px;padding-bottom:6px}
.sf-m-d11c96{font-size:12px;color:var(--ru-discret,#6b7280);margin-top:4px}
.sf-m-ebc70c{width:100%;justify-content:center;margin-top:4px;font-size:13px}
.sf-m-ebc70c[hidden]{display:none}
.sf-m-ee4d96{display:flex;gap:6px;margin-bottom:6px;align-items:center}
.sf-metier-ligne{display:flex;align-items:center;gap:8px;padding:5px 4px 5px 16px;font-size:12.5px;color:var(--ru-texte-2,#14314b);cursor:pointer}
.sf-metier-ligne.is-coche{background:var(--ru-accent-doux,rgba(44,111,181,.12));font-weight:600;color:var(--ru-texte,#0e2438)}
.sf-invisible{visibility:hidden}
.sf-signer-ajouter{margin-top:6px}
.sf-bloc-14{margin-bottom:14px}
.sf-libelle-signataires{font-size:12px;font-weight:600;color:var(--ru-texte-2,#14314b);margin:0 0 6px}
.sf-aide-signataires{font-size:12px;color:var(--ru-discret,#6b7280);margin-top:10px}
.sf-champ-image{max-width:100%;max-height:100%}
.sf-fin{text-align:center;padding:56px 20px;max-width:520px;margin:0 auto}
.sf-fin--refus{padding:60px 20px}
.sf-fin-titre{font-size:24px;margin:0 0 12px;color:var(--ru-succes,#1a7f37)}
.sf-fin-texte{color:var(--ru-texte-2,#14314b);font-size:14.5px;line-height:1.6;margin:0 0 26px}
.sf-fin-discret{color:var(--ru-discret,#6b7280)}
.sf-fin-verif{background:var(--ru-accent-doux,rgba(44,111,181,.12));border:1px solid var(--ru-accent-filet,rgba(44,111,181,.45));border-radius:12px;padding:18px 20px;margin:0 0 22px;text-align:center}
.sf-fin-verif-titre{font-size:11px;font-weight:800;color:var(--ru-accent,#1d5c8f);letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}
.sf-fin-verif-texte{font-size:13px;color:var(--ru-texte-2,#14314b);line-height:1.55;margin:0 0 12px}
.sf-fin-hash-titre{font-size:10.5px;font-weight:700;color:var(--ru-discret-2,#9ca3af);letter-spacing:.12em;text-transform:uppercase;margin:8px 0 4px}
.sf-fin-hash{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--ru-discret,#6b7280);background:var(--ru-surface-2,#F4F4F5);padding:10px 12px;border-radius:8px;word-break:break-all;margin:0;line-height:1.55}
.signflow-root [hidden],.sf-overlay [hidden],.sf-sign-field-box[hidden]{display:none}

/* ============================================================
   TÉLÉPHONE ET TABLETTE (Livraison 7, lot B) : standard RU, cibles de
   44 px et champs de 16 px (pas de zoom à la saisie), un seul point de
   rupture commun.
   ============================================================ */
@media (max-width:999px){
  .signflow-root .ru-bouton,.signflow-root .sf-btn,.sf-overlay .ru-bouton,.sf-overlay .sf-btn,.sf-sign-page .ru-bouton,.sf-public-wrap .ru-bouton,.sf-fields-front .ru-bouton,.sf-fe-palette-item,.sf-ru-topbar .ru-bouton{min-height:44px}
  .signflow-root input:not([type=checkbox]):not([type=radio]),.signflow-root select,.signflow-root textarea,.sf-overlay input:not([type=checkbox]):not([type=radio]),.sf-overlay select,.sf-overlay textarea,.sf-public-wrap input,.sf-fields-front input:not([type=checkbox]):not([type=radio]),.sf-fields-front select,.sf-fields-front textarea{font-size:16px;min-height:44px}
  .signflow-root textarea,.sf-overlay textarea,.sf-fields-front textarea{min-height:88px}
  .sf-field-editor{grid-template-columns:1fr}
  .sf-fe-page-nav .ru-bouton{min-width:44px}
}
.sf-fe-save-status.is-erreur,.sf-fe-msg.is-erreur{color:var(--ru-erreur,#b42318)}
.sf-fe-save-status.is-ok{color:var(--ru-succes,#1a7f37)}
.sf-fe-msg{font-size:12px;color:var(--ru-discret,#6b7280);margin-top:8px}
.sf-fe-models{margin-top:12px;text-align:left}
.sf-fe-models .sf-fe-model-item{justify-content:flex-start;margin:0 0 8px}
.sf-fe-page--import{min-height:380px}
.sf-fe-actions{display:flex;flex-direction:column;gap:8px;margin-top:16px}
