/* ==========================================================================
   Profilia - Dépôt de CV (cv-depot.js, pfl-cv.php)
   Zone de dépôt, fichier ajouté, progression, erreur. Limité à .pf-cv.
   ========================================================================== */
.pf-cv { position: relative; display: block; margin-bottom: 6px; font-family: var(--font-sans); }
.pf-cv *, .pf-cv *::before, .pf-cv *::after { box-sizing: border-box; }
.pf-cv [hidden] { display: none !important; }
.pf-cv__input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); pointer-events: none; }
.pf-cv__drop, .pf-cv__file { display: flex; align-items: center; gap: 16px; min-height: 100px; padding: 20px 22px; border-radius: 18px; }
.pf-cv__drop { border: 1.5px dashed rgba(13, 43, 48, .32); background: var(--sand-200, #F4F2EE); cursor: pointer; transition: border-color .15s, background .15s; }
.pf-cv__drop:hover, .pf-cv.is-survol .pf-cv__drop { border-color: var(--cyan-700, #087A88); }
.pf-cv.is-survol .pf-cv__drop { background: var(--cyan-100, #DCF3F6); }
.pf-cv.is-erreur .pf-cv__drop { border-color: #B42318; }
.pf-cv__file { border: 1.5px solid var(--cyan-700, #087A88); background: var(--cyan-100, #DCF3F6); }
.pf-cv__file.is-envoi { border-color: rgba(13, 43, 48, .2); background: #FFFFFF; }
.pf-cv__ico { display: grid; place-items: center; flex: none; width: 56px; height: 56px; border-radius: 16px; background: #FFFFFF; color: var(--cyan-700, #087A88); }
.pf-cv__file.is-envoi .pf-cv__ico { background: var(--sand-200, #F4F2EE); }
.pf-cv__txt { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.pf-cv__txt b { font: 600 16px/1.3 var(--font-sans); color: var(--text-strong, #0D2B30); overflow-wrap: anywhere; }
.pf-cv__txt small { font: 400 13px/1.45 var(--font-sans); color: var(--ink-72, #3F5457); }
.pf-cv__bar { display: block; height: 5px; margin-top: 8px; border-radius: 5px; background: #E6ECEC; overflow: hidden; }
.pf-cv__bar i { display: block; width: 4%; height: 100%; border-radius: 5px; background: var(--cyan-700, #087A88); transition: width .2s linear; }
.pf-cv__act { display: flex; flex: none; gap: 8px; }
.pf-cv button { height: 44px; margin: 0; padding: 0 16px; border: 1px solid rgba(13, 43, 48, .18); border-radius: 12px; background: #FFFFFF !important; color: var(--text-strong, #0D2B30) !important; font: 600 14px var(--font-sans); white-space: nowrap; cursor: pointer; box-shadow: none !important; }
.pf-cv button:hover { border-color: var(--cyan-700, #087A88); }
.pf-cv button:focus-visible { outline: 3px solid rgba(15, 178, 198, .55); outline-offset: 2px; }
.pf-cv .pf-cv__btn { flex: none; border-color: transparent; color: var(--cyan-700, #087A88) !important; }
.pf-cv [data-retirer] { border-color: transparent; background: transparent !important; color: var(--ink-72, #3F5457) !important; text-decoration: underline; text-underline-offset: 3px; padding: 0 8px; }
.pf-cv__err { margin: 8px 0 0 !important; font: 500 13px/1.45 var(--font-sans); color: #B42318; }
@media (max-width: 767px) {
  .pf-cv__drop, .pf-cv__file { flex-wrap: wrap; gap: 12px 14px; padding: 16px; min-height: 0; }
  .pf-cv__ico { width: 48px; height: 48px; border-radius: 14px; }
  .pf-cv__txt { flex: 1 1 0; }
  .pf-cv .pf-cv__btn { flex: 1 1 100%; border-color: rgba(13, 43, 48, .18); height: 48px; }
  .pf-cv__act { flex: 1 1 100%; }
  .pf-cv__act button:first-child { flex: 1; }
}
@media (prefers-reduced-motion: reduce) { .pf-cv * { transition: none !important; } }
