.nsf-form-shell{display:flex;flex-direction:column;gap:16px;max-width:760px}
.nsf-form{
  position:relative;
  display:grid;
  gap:16px;
  width:100%;
  max-width:100%;
  /* Thème overlay envoi : surcharger depuis le thème enfant, ex. .nsf-form { --nsf-submit-spinner-accent: #123B09; } */
  --nsf-submit-backdrop: rgba(255,255,255,.78);
  --nsf-submit-panel-bg: #fff;
  --nsf-submit-panel-shadow: 0 12px 40px rgba(8,15,61,.12), 0 0 0 1px rgba(6,102,221,.08);
  --nsf-submit-spinner-trail: rgba(6,102,221,.18);
  --nsf-submit-spinner-accent: #0666dd;
  --nsf-submit-text: #080f3d;
}
.nsf-form--submitting{pointer-events:none}
.nsf-submit-busy{position:absolute;inset:0;z-index:200;display:grid;place-items:center;padding:24px;box-sizing:border-box;pointer-events:none}
.nsf-submit-busy[hidden]{display:none!important}
.nsf-submit-busy__backdrop{position:absolute;inset:0;background:var(--nsf-submit-backdrop);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:12px}
.nsf-submit-busy__panel{position:relative;display:flex;flex-direction:column;align-items:center;gap:16px;padding:28px 32px;border-radius:16px;background:var(--nsf-submit-panel-bg);box-shadow:var(--nsf-submit-panel-shadow);max-width:min(320px,100%)}
.nsf-submit-busy__spinner{width:44px;height:44px;border-radius:50%;border:3px solid var(--nsf-submit-spinner-trail);border-top-color:var(--nsf-submit-spinner-accent);animation:nsf-submit-spin .72s linear infinite;box-sizing:border-box}
.nsf-submit-busy__text{margin:0;font-size:15px;font-weight:600;color:var(--nsf-submit-text);letter-spacing:.02em;text-align:center;line-height:1.35}
@keyframes nsf-submit-spin{to{transform:rotate(360deg)}}
.nsf-step-rich{margin:12px 0;line-height:1.5}
.nsf-step-rich--before-submit{margin:16px 0 10px}
.nsf-step-rich--before-submit > :first-child{margin-top:0}
.nsf-step-rich--before-submit > :last-child{margin-bottom:0}
.nsf-step-title--rich{margin:0 0 8px;line-height:1.35}
.nsf-step-title--rich > :first-child{margin-top:0}
.nsf-step-title--rich > :last-child{margin-bottom:0}
.nsf-step-desc--rich{margin:8px 0;line-height:1.5}
.nsf-step-desc--rich > :first-child{margin-top:0}
.nsf-step-desc--rich > :last-child{margin-bottom:0}
.nsf-step-rich-outside{margin:0;line-height:1.5}
.nsf-nav-mount{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 0}
/* Emplacements : .nsf-nav-mount--before-fields = avant .nsf-fields-grid ; .nsf-nav-mount--after-fields = après. data-nsf-nav-slot="before"|"after". */
.nsf-actions:empty{display:none}
.nsf-form.nsf-form-loading{opacity:0;visibility:hidden}
.nsf-form.nsf-form-ready{opacity:1;visibility:visible;transition:opacity .2s ease}
.nsf-fields-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--nsf-fields-gap,12px)}
.nsf-field{display:grid;gap:6px;grid-column:span var(--nsf-col-span,12)}
.nsf-field > label{transition:color .15s ease}
.nsf-field.nsf-field-invalid > label,
.nsf-field.nsf-field-erreur > label{color:#d62828;font-weight:600}
.nsf-field.nsf-field-invalid input,
.nsf-field.nsf-field-invalid textarea,
.nsf-field.nsf-field-invalid select,
.nsf-field.nsf-field-erreur input,
.nsf-field.nsf-field-erreur textarea,
.nsf-field.nsf-field-erreur select{border-color:#d62828}
.nsf-field.nsf-field-invalid .nice-select,
.nsf-field.nsf-field-erreur .nice-select{border-color:#d62828}
.nsf-field.nsf-field-password .nsf-password-wrap{display:grid;grid-template-columns:1fr;grid-template-rows:auto;min-width:0;width:100%;align-items:stretch}
.nsf-field.nsf-field-password .nsf-password-input{grid-column:1;grid-row:1;width:100%;min-width:0;padding-right:48px;box-sizing:border-box}
.nsf-field.nsf-field-password .nsf-password-toggle{grid-column:1;grid-row:1;justify-self:end;align-self:center;margin-right:8px;z-index:2;display:inline-flex;align-items:center;justify-content:center;padding:4px;margin-top:0;margin-bottom:0;margin-left:0;border:0;background:transparent;cursor:pointer;line-height:0;border-radius:4px;pointer-events:auto}
.nsf-field.nsf-field-password .nsf-password-toggle:focus-visible{outline:2px solid #0666dd;outline-offset:2px}
.nsf-field.nsf-field-password .nsf-password-toggle img{display:block;width:22px;height:22px;object-fit:contain}
.nsf-field .nice-select{width:100%;height:42px;line-height:40px;border:1px solid #d2d2d2;border-radius:6px;float:none;padding-left:12px;padding-right:34px;font-size:14px;position:relative;z-index:3;pointer-events:auto}
.nsf-field .nice-select:after{right:12px;border-bottom:2px solid #666;border-right:2px solid #666;width:8px;height:8px}
.nsf-field .nice-select.open,.nsf-field .nice-select:focus{border-color:#0666dd;z-index:9999}
.nsf-field .nice-select .list{width:100%;max-height:260px;overflow:auto;border:1px solid #d2d2d2;border-radius:6px;z-index:10000;pointer-events:none}
.nsf-field .nice-select.open .list{pointer-events:auto}
.nsf-actions{display:flex;gap:10px;align-items:center}
.nsf-btn{padding:10px 16px;border:none;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.nsf-submit-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0}
.nsf-submit-icon img{display:block;width:1.25em;height:1.25em;object-fit:contain}
.nsf-submit--icon-only .nsf-submit-icon img{width:1.5em;height:1.5em}
.nsf-btn-secondary{background:#efefef;color:#222;border:1px solid #ccc}
.nsf-lost-password-resend{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.nsf-lost-password-resend-notice{display:block;width:100%;margin:0;font-size:14px;line-height:1.4}
.nsf-lost-password-resend-notice--success{color:#137914}
.nsf-lost-password-resend-notice--error{color:#b32d2e}
.nsf-next,.nsf-submit{background:#0666dd;color:#fff}
.nsf-prev{background:#efefef}
.nsf-form .nsf-prev,.nsf-form .nsf-next,.nsf-form .nsf-submit{display:none}
.nsf-form:not(.nsf-js-ready) .nsf-submit{display:inline-flex}
.nsf-form.nsf-js-ready[data-nsf-nav="single"] .nsf-submit{display:inline-flex}
.nsf-form.nsf-js-ready[data-nsf-nav="start"] .nsf-next{display:inline-flex}
.nsf-form.nsf-js-ready[data-nsf-nav="middle"] .nsf-prev,.nsf-form.nsf-js-ready[data-nsf-nav="middle"] .nsf-next{display:inline-flex}
.nsf-form.nsf-js-ready[data-nsf-nav="end"] .nsf-prev,.nsf-form.nsf-js-ready[data-nsf-nav="end"] .nsf-submit{display:inline-flex}
.nsf-form.nsf-js-ready .nsf-btn.nsf-step-hidden{display:none !important}
/* Submit dans la grille (newsletter inline) */
.nsf-form--submit-in-grid .nsf-fields-grid{align-items:end}
.nsf-form--submit-in-grid .nsf-submit-grid-slot{display:flex;align-items:stretch;grid-column:span var(--nsf-col-span,var(--nsf-submit-grid-col-span,3));min-width:0;margin:0;padding:0}
.nsf-form--submit-in-grid .nsf-submit-grid-slot .nsf-submit{width:100%;min-height:46px;margin:0;align-self:stretch}
.nsf-form--submit-in-grid .nsf-actions .nsf-submit{display:none !important}
.nsf-form--submit-in-grid.nsf-js-ready[data-nsf-nav="single"] .nsf-submit-grid-slot .nsf-submit,
.nsf-form--submit-in-grid.nsf-js-ready[data-nsf-nav="end"] .nsf-submit-grid-slot .nsf-submit{display:inline-flex !important}
.nsf-form--submit-in-grid:not(.nsf-js-ready) .nsf-submit-grid-slot .nsf-submit{display:inline-flex !important}
.nsf-validation-message{padding:10px
    ;background:#fff4e5;border:1px solid #f0c36d;border-radius:6px;color:#7a4b00;font-size:14px}
.nsf-validation-message.is-success {
    background: #22aaa1;
    border-color: #22aaa1;
    color: #fff;
}
.nsf-validation-message.is-error {
    background: #d62828;
    border-color: #d62828;
    color: #fff;
}
.nsf-success {
    padding: 10px;
    background: #22aaa1;
    border: 1px solid #22aaa1;
    color: #fff;

    border-radius: 6px;
    font-size: 15px;
    line-height: 15px;
}
.nice-select:not(.open) {
    overflow: hidden !important;
    z-index: 1 !important;
}
.nsf-error{padding:10px;background:#d62828;border:1px solid #d62828;border-radius:6px}
.nsf-form.nsf-form-invalid,
.nsf-form.nsf-form-erreur{/* hook thème — état erreur validation / soumission */}


fieldset.nsf-step {
    border: none;
    padding: 0;
    overflow: visible;
}
@media (max-width:782px){
    .nsf-fields-grid{grid-template-columns:1fr}
    .nsf-field{grid-column:span 1}
}
.nsf-field input, .nsf-field textarea, .nsf-field select {
    outline: none !important;
}

/* Date : saisie via Flatpickr (soumission ISO Y-m-d) */
.nsf-field-date .flatpickr-input,
.nsf-field-date input.nsf-input-date {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 12px 14px;
    border: 1px solid #e4e6ef;
    border-radius: 10px;
    background: #fff;
    font-size: 15px;
    font-weight: 500;
    color: #080f3d;
    min-height: 46px;
}
.nsf-field-date .flatpickr-input:focus,
.nsf-field-date input.nsf-input-date:focus {
    border-color: #0666dd;
    box-shadow: 0 0 0 1px rgba(6, 102, 221, 0.12);
    outline: none;
}
.flatpickr-calendar {
    z-index: 1000001;
}

.nsf-field-after--rich{margin-top:8px;line-height:1.5;font-size:14px}
.nsf-field-after--rich > :first-child{margin-top:0}
.nsf-field-after--rich > :last-child{margin-bottom:0}
.nsf-field-before--rich{margin-bottom:8px;line-height:1.5;font-size:14px}
.nsf-field-before--rich > :first-child{margin-top:0}
.nsf-field-before--rich > :last-child{margin-bottom:0}
.nsf-field-required{color:#d62828;font-weight:700;margin-left:2px;white-space:nowrap}
.nsf-radio-group,.nsf-checkbox-group{display:flex;flex-wrap:wrap;gap:16px 24px;margin-top:8px;align-items:center}
.nsf-radio-option,.nsf-checkbox-option{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:15px;font-weight:500;color:#4a5568;line-height:1.35;margin:0}
.nsf-choice-text{flex:1;min-width:0}
/* Cases carrées arrondies + bord lavande (radio & checkbox), cohérent charte */
.nsf-field-radio .nsf-radio-option input[type="radio"],
.nsf-field-checkbox .nsf-checkbox-option input[type="checkbox"]{
    -webkit-appearance:none;appearance:none;
    width:22px;height:22px;margin:0;flex-shrink:0;
    border:2px solid #c8bfe0;border-radius:8px;background:#fff;
    box-sizing:border-box;
    transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;
    cursor:pointer;
}
.nsf-field-radio .nsf-radio-option input[type="radio"]:hover,
.nsf-field-checkbox .nsf-checkbox-option input[type="checkbox"]:hover{border-color:#9b8fd4}
.nsf-field-radio .nsf-radio-option input[type="radio"]:focus-visible,
.nsf-field-checkbox .nsf-checkbox-option input[type="checkbox"]:focus-visible{
    outline:2px solid #0666dd;outline-offset:2px;
}
.nsf-field-radio .nsf-radio-option input[type="radio"]:checked{
    border-color:#0666dd;background:#0666dd;
    box-shadow:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1 5l3 3 7-7'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:center;background-size:12px 10px;
}
.nsf-field-checkbox .nsf-checkbox-option input[type="checkbox"]:checked{
    border-color:#0666dd;background:#0666dd;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1 5l3 3 7-7'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:center;background-size:12px 10px;
}
.nsf-field-radio .nsf-radio-option:has(input:checked) .nsf-choice-text,
.nsf-field-checkbox .nsf-checkbox-option:has(input:checked) .nsf-choice-text{
    color:#080f3d;font-weight:600;
}
.nsf-field-file-bundle .nsf-file-bundle-rows{margin-top:10px}
.nsf-file-bundle-rows--grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
@media (max-width:782px){
    .nsf-file-bundle-rows--grid{grid-template-columns:1fr}
}
.nsf-file-bundle-row{display:grid;grid-template-columns:1fr;gap:0;align-items:start}
.nsf-file-bundle-row--dynamic{grid-template-columns:1fr auto;gap:10px;align-items:center}
.nsf-fb-row-stack{display:flex;flex-direction:column;gap:10px;min-width:0;position:relative}
/* Badge « Document à mettre à jour » : lecture seule sur le front, affiché uniquement quand `update=true` côté bo. */
.nsf-fb-update-badge{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#8b6914;pointer-events:none;z-index:1}
.nsf-fb-update-badge__text{line-height:1}
.nsf-fb-update-badge__icon{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:5px;background:#d4a017;color:#fff;font-style:italic;font-weight:700;font-size:13px;line-height:1;font-family:Georgia,serif}
/* Slot marqué pour mise à jour : fond crème + bordure dorée. */
.nsf-file-bundle-row--marked-update .nsf-fb-face--full{background:#fdf3d8;border-color:#d4a017}
.nsf-field.nsf-field-file-bundle .nsf-fb-nom-input{width:100%;box-sizing:border-box;padding:12px 14px!important;border:1px solid #e4e6ef!important;border-radius:10px!important;background:#fff!important;font-size:15px!important;font-weight:600!important;color:#080f3d!important;outline:none}
.nsf-field.nsf-field-file-bundle .nsf-fb-nom-input:focus{border-color:#0666dd!important;box-shadow:0 0 0 1px rgba(6,102,221,.12)!important}
.nsf-field-file-bundle .nsf-fb-nom-label{display:block;margin:0;font-size:15px;font-weight:600;color:#080f3d;line-height:1.35}
.nsf-field-file-bundle[data-nsf-file-bundle-only-upload="1"] .nsf-fb-nom-label{color:#080f3d}
.nsf-fb-slot{position:relative;min-width:0}
.nsf-fb-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;opacity:0;pointer-events:none}
.nsf-fb-slot--filled .nsf-fb-file-input{pointer-events:none}
/* Une seule zone (vide OU remplie) : ne pas aligner les deux faces en flex-row */
.nsf-fb-card{display:block;position:relative;min-height:0;border-radius:10px;cursor:pointer;outline:none;transition:box-shadow .15s ease, border-color .15s ease, background .15s ease}
.nsf-fb-card:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #0666dd}
.nsf-fb-face{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;min-height:72px;padding:12px 14px;border:1px dashed #9eb4d8;border-radius:10px;background:#eef2f8;box-sizing:border-box}
.nsf-fb-face[hidden]{display:none!important}
.nsf-fb-face--full{border-color:#5bb98a;background:#e8f7ef;border-style:dashed}
.nsf-fb-card-msg{font-size:14px;font-weight:500;color:#080f3d;text-align:left}
.nsf-fb-face--full .nsf-fb-filename{font-size:14px;font-weight:600;color:#1d2327;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.nsf-fb-ico-upload{position:relative;width:40px;height:40px;flex-shrink:0;border:2px dashed #7eb8e0;border-radius:50%;box-sizing:border-box;background:linear-gradient(180deg,#fff 0%,#f0f7fc 100%)}
.nsf-fb-ico-upload::after{content:"";position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid #5a9bc9}
.nsf-fb-ico-plus{width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;border:2px solid #0666dd;background:transparent;color:#0666dd;font-size:18px;font-weight:700;line-height:1;box-sizing:border-box}
.nsf-fb-ico-check{width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:#22a756;color:#fff;font-size:16px;font-weight:700;line-height:1}
.nsf-fb-clear{display:grid;place-items:center;width:40px;height:40px;padding:0;border:none;border-radius:8px;background:transparent;color:#d62828;cursor:pointer;flex-shrink:0;transition:background .12s ease}
.nsf-fb-clear:hover{background:rgba(214,40,40,.08)}
.nsf-fb-ico-trash{display:block;width:22px;height:22px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d62828' stroke-width='2'%3E%3Cpath d='M3 6h18M8 6V4h8v2M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M10 11v6M14 11v6'/%3E%3C/svg%3E") center/contain no-repeat}
.nsf-file-bundle-row-actions{display:flex;align-items:center;padding-top:0}
.nsf-file-bundle-remove{min-width:36px;height:36px;padding:0;line-height:1;border:1px solid #c3c4c7;border-radius:6px;background:#fff;color:#50575e;cursor:pointer;font-size:18px}
.nsf-file-bundle-remove:hover{background:#f0f0f1}
.nsf-file-bundle-remove:disabled{opacity:.45;cursor:not-allowed}
.nsf-file-bundle-add-wrap{margin:14px 0 0}
.nsf-field-file-bundle--ui-m2 .nsf-file-bundle-add-wrap{display:none!important}
/* File bundle — mode d’affichage 2 (bandeau + cartes compactes) */
.nsf-field.nsf-field-invalid > .nsf-field-label, .nsf-field.nsf-field-erreur > .nsf-field-label {
    color: #d62828;
    font-weight: 600;
}
.nsf-field-file-bundle--ui-m2 .nsf-fb-m2-global-add{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin:4px 0 18px;
    padding:16px 20px;
    border:none;
    border-radius:14px;
    background:linear-gradient(180deg,#e8f2ff 0%,#d4e8ff 100%);
    color:#063d8f;
    font-size:16px;
    font-weight:600;
    cursor:pointer;
    box-sizing:border-box;
    text-align:left;
    box-shadow:0 1px 0 rgba(255,255,255,.6) inset;
    transition:box-shadow .15s ease,transform .08s ease;
}
.nsf-field-file-bundle--ui-m2 .nsf-fb-m2-global-add:hover{box-shadow:0 4px 18px rgba(6,102,221,.2)}
.nsf-field-file-bundle--ui-m2 .nsf-fb-m2-global-add:focus-visible{outline:2px solid #0666dd;outline-offset:2px}
.nsf-field-file-bundle--ui-m2 .nsf-fb-m2-global-add-text{flex:1;min-width:0;line-height:1.35}
.nsf-field-file-bundle--ui-m2 .nsf-fb-m2-global-add-ico{
    width:48px;height:48px;flex-shrink:0;border-radius:12px;background:#fff;
    border:2px solid #7eb8e0;box-sizing:border-box;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='6' y='4' width='20' height='24' rx='2' fill='%23e8f2ff' stroke='%230666dd' stroke-width='1.5'/%3E%3Cpath d='M10 12h12M10 16h8' stroke='%23666' stroke-width='1.2'/%3E%3Ccircle cx='24' cy='8' r='6' fill='%230666dd'/%3E%3Cpath d='M24 5.5v5M21.5 8h5' stroke='%23fff' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:center;background-size:70% 70%;
}
.nsf-field-file-bundle--ui-m2 .nsf-file-bundle-rows--m2{
    display:flex;flex-direction:row;flex-wrap:wrap;gap:14px 16px;margin-top:0;
    align-items:flex-start;
}
.nsf-field-file-bundle--ui-m2 .nsf-file-bundle-row--m2{
    flex:0 1 148px;max-width:160px;min-width:120px;margin:0;
}
.nsf-field-file-bundle--ui-m2 .nsf-file-bundle-row--dynamic{
    display:grid;
    grid-template-columns:minmax(0,160px) auto;
    gap:8px;
    align-items:start;
    flex:0 1 auto;
    max-width:220px;
}
.nsf-field-file-bundle--ui-m2 .nsf-fb-row-stack{gap:8px}
.nsf-field-file-bundle--ui-m2 .nsf-fb-card{min-height:0}
.nsf-field-file-bundle--ui-m2 .nsf-fb-face{
    min-height:104px;padding:10px 10px 12px;border-radius:12px;box-sizing:border-box;
}
.nsf-field-file-bundle--ui-m2 .nsf-fb-face--empty{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
    border-style:dashed;border-color:#9eb4d8;background:#f5f8fd;
    grid-template-columns:unset;
}
/*
 * File bundle mode 2 — icônes par type de fichier (thème / surcharge)
 * -----------------------------------------------------------------
 * Après sélection d’un fichier, le slot porte data-nsf-fb-ext="pdf" (extension seule, minuscule).
 * Définissez vos background-image dans le thème (ex. themes/euroweb-child ou main.css) :
 *
 * .nsf-field-file-bundle--ui-m2 [data-nsf-fb-slot][data-nsf-fb-ext="pdf"] .nsf-fb-face--full .nsf-fb-m2-doc-ico { }
 * .nsf-field-file-bundle--ui-m2 [data-nsf-fb-slot][data-nsf-fb-ext="pdf"] .nsf-fb-face--empty .nsf-fb-m2-doc-ico--muted { }
 * (répéter pour jpg, png, doc, etc.)
 */
.nsf-field-file-bundle--ui-m2 .nsf-fb-face--empty .nsf-fb-m2-doc-ico--muted{
    width:36px;height:36px;opacity:.55;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%239aa3b2' d='M6 2h9l5 5v15a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z'/%3E%3Cpath fill='%23fff' d='M14 2v5h5' opacity='.35'/%3E%3C/svg%3E") center/contain no-repeat;
}
.nsf-field-file-bundle--ui-m2 .nsf-fb-m2-plus-ico{
    width:26px;height:26px;display:grid;place-items:center;border-radius:50%;
    border:2px solid #0666dd;color:#0666dd;font-size:16px;font-weight:700;line-height:1;
}
.nsf-field-file-bundle--ui-m2 .nsf-fb-face--full{
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-rows:auto minmax(0,1fr);
    gap:6px 8px;
    align-items:start;
    border-style:solid;border-color:#b8d0f0;background:#eef4ff;
}
.nsf-field-file-bundle--ui-m2 .nsf-fb-face--full .nsf-fb-m2-doc-ico{
    width:32px;height:32px;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230666dd' d='M6 2h9l5 5v15a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z'/%3E%3Cpath fill='%23fff' d='M14 2v5h5' opacity='.4'/%3E%3C/svg%3E") center/contain no-repeat;
}
.nsf-field-file-bundle--ui-m2 .nsf-fb-face--full .nsf-fb-clear.nsf-fb-m2-clear{
    width:28px;height:28px;padding:0;border:none;border-radius:8px;
    background:#c53030;color:#fff;font-weight:700;font-size:16px;line-height:1;
    display:grid;place-items:center;align-self:start;
}
.nsf-field-file-bundle--ui-m2 .nsf-fb-face--full .nsf-fb-clear.nsf-fb-m2-clear:hover{background:#9b2c2c}
.nsf-field-file-bundle--ui-m2 .nsf-fb-face--full .nsf-fb-filename{
    grid-column:1 / -1;
    font-size:12px;font-weight:600;color:#1d2327;
    text-align:center;white-space:normal;word-break:break-word;line-height:1.25;
    align-self:end;padding-top:4px;
}
.nsf-field-file-bundle--ui-m2 .nsf-fb-nom-input{
    padding:8px 10px!important;font-size:13px!important;border-radius:8px!important;
}
.nsf-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Stepper progression (segments regroupant plusieurs étapes builder) */
.nsf-step-progress{margin:0 0 20px;padding:16px 14px;border-radius:12px;background:#eef2f8;box-sizing:border-box;width:100%;max-width:100%}
.nsf-step-progress__list {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0;
    -webkit-overflow-scrolling: touch;
    justify-content: space-between;
}
.nsf-step-progress__item {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 0;
    min-width: auto;
    margin: 0;
    padding: 0;
    flex: 0 0 auto;
}
.nsf-step-progress__item:not(:last-child)::after {
    content: "";
    position: absolute;
    left: calc(50% + 18px);
    right: -50%;
    height: 1px;
    background: #717171;
    z-index: 0;
}
.nsf-step-progress__item.is-done:not(:last-child)::after{background:#080f3d}
.nsf-step-progress__track{position:relative;z-index:1;display:flex;align-items:center;flex-shrink:0}
.nsf-step-progress__circle{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:2px solid #9aa3b2;background:#fff;color:#6b7280;font-size:14px;font-weight:700;line-height:1;box-sizing:border-box;transition:background .15s ease,border-color .15s ease,color .15s ease}
.nsf-step-progress__label{margin-left:10px;font-size:14px;font-weight:500;color:#6b7280;line-height:1.25;min-width:0}
.nsf-step-progress__item.is-active .nsf-step-progress__circle{background:#080f3d;border-color:#080f3d;color:#fff}
.nsf-step-progress__item.is-active .nsf-step-progress__label{color:#080f3d;font-weight:700}
.nsf-step-progress__item.is-done .nsf-step-progress__circle{background:#080f3d;border-color:#080f3d;color:#fff}
.nsf-step-progress__item.is-done .nsf-step-progress__label{color:#6b7280;font-weight:500}
.nsf-step-progress__item.is-step-skipped{display:none}
@media (max-width:600px){
    .nsf-step-progress__label{font-size:12px}
    .nsf-step-progress__circle{width:30px;height:30px;font-size:13px}
}

/* Labels flottants — placeholder remonte au focus / si valeur */
.nsf-form--floating-labels .nsf-field--floating {
    gap: 0;
}
.nsf-form--floating-labels .nsf-floating-control {
    position: relative;
    display: block;
    width: 100%;
    background: #fff;
    border: 0;
    border-bottom: 1px solid #e7e7e7;
    border-radius: 12px 12px 0 0;
    box-sizing: border-box;
    transition: border-color .2s ease;
}
.nsf-form--floating-labels .nsf-floating-control:focus-within {
    border-bottom-color: #080f3d;
}
.nsf-form--floating-labels .nsf-field.nsf-field-invalid .nsf-floating-control,
.nsf-form--floating-labels .nsf-field.nsf-field-erreur .nsf-floating-control {
    border-bottom-color: #d62828;
}
.nsf-form--floating-labels .nsf-floating-input,
.nsf-form--floating-labels .nsf-floating-control .nsf-password-input,
.nsf-form--floating-labels .nsf-floating-control .flatpickr-input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 26px 14px 10px;
    border: 0;
    border-radius: 0;
    background: transparent;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.35;
    color: #1a1a1a;
    min-height: 56px;
    outline: none !important;
    box-shadow: none !important;
}
.nsf-form--floating-labels .nsf-floating-control textarea.nsf-floating-input {
    min-height: 88px;
    resize: vertical;
    padding-top: 30px;
}
.nsf-form--floating-labels .nsf-floating-control .nsf-password-wrap {
    display: block;
    width: 100%;
    min-width: 0;
}
.nsf-form--floating-labels .nsf-floating-control .nsf-password-input {
    padding-right: 48px;
}
.nsf-form--floating-labels .nsf-floating-label {
    position: absolute;
    left: 20px;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.3;
    color: #8a8a8a;
    pointer-events: none;
    transition: top .18s ease, transform .18s ease, font-size .18s ease, color .18s ease;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


 .nsf-form--floating-labels .nsf-field-textarea .nsf-floating-label {
    top: 20px;
}


.nsf-form--floating-labels .nsf-floating-control:focus-within .nsf-floating-label,
.nsf-form--floating-labels .nsf-floating-control.has-value .nsf-floating-label {
    top: 10px;
    transform: none;
    font-size: 12px;
    color: #8a8a8a;
}
.nsf-form--floating-labels .nsf-floating-label .nsf-field-required {
    color: inherit;
    font-weight: inherit;
}
.nsf-form--floating-labels .nsf-floating-control > input.nsf-input-date[data-nsf-flatpickr="1"] {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    min-height: 0 !important;
}