/* SF Sélection — formulaire de candidature et espace sélection.
   Police héritée du thème ; Helvetica n'est qu'un secours. */
.sf-c, .sf-s {
  --sf-ink: #111; --sf-mute: #555; --sf-mute2: #666; --sf-soft: #888; --sf-faint: #bbb;
  --sf-red: #ff0000; --sf-line: #e5e5e5; --sf-bd: #d4d4d4; --sf-bd2: #ddd; --sf-bg: #f5f5f5;
  font-family: inherit;
  color: var(--sf-ink);
  overflow-wrap: break-word;
}
.sf-c *, .sf-s *, .sf-c *::before, .sf-s *::before, .sf-c *::after, .sf-s *::after { box-sizing: border-box; }
.sf-c input, .sf-c button, .sf-c select, .sf-c textarea,
.sf-s input, .sf-s button, .sf-s textarea { font: inherit; letter-spacing: normal; text-transform: none; box-shadow: none; }
.sf-c a, .sf-s a { color: var(--sf-ink); text-decoration: underline; }
.sf-c a:hover, .sf-s a:hover { color: var(--sf-red); }
.sf-c :focus-visible, .sf-s :focus-visible { outline: 2px solid var(--sf-ink); outline-offset: 2px; }
.sf-c [hidden], .sf-s [hidden] { display: none !important; }
.sf-c .screen-reader-text, .sf-s .screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Champs communs */
.sf-c input[type="text"], .sf-c input[type="email"], .sf-c input[type="tel"],
.sf-s .sf-s-input, .sf-s .sf-s-search {
  width: 100%; height: 48px; margin: 0; border: 1px solid var(--sf-bd); border-radius: 0;
  padding: 0 16px; font-size: 15px; line-height: normal; color: var(--sf-ink); background: #fff;
  transition: border-color 120ms linear;
}
.sf-c input:focus, .sf-c select:focus, .sf-s .sf-s-input:focus, .sf-s .sf-s-search:focus, .sf-s .sf-s-avis:focus {
  outline: none; border-color: var(--sf-ink) !important;
}
.sf-c input.is-err, .sf-s .sf-s-input.is-err { border-color: var(--sf-red); }
.sf-c-req { color: var(--sf-red); }

/* ================= Formulaire 4 étapes ================= */
@keyframes sfIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

.sf-c { background: transparent; padding: clamp(48px, 6vw, 96px) 0; }
.sf-c.sf-c-portal { padding: 0; }
.sf-c-in { max-width: 1300px; margin: 0; display: flex; flex-direction: column; gap: clamp(36px, 5vw, 56px); }
.sf-c-intro { display: flex; flex-direction: column; gap: 18px; }
.sf-c .sf-c-h1 { margin: 0; font-family: "Space Grotesk", sans-serif; font-size: clamp(34px, 4.4vw, 58px); line-height: 1.05; font-weight: 500; letter-spacing: -0.05em; text-transform: none; color: #000; }
/* Point rouge final, comme le titre « Témoignages » */
.sf-c .sf-c-h1::after { content: "."; color: var(--sf-red); }
.sf-c-lead { margin: 0; max-width: 680px; font-size: 17px; line-height: 1.65; }
.sf-c-deadline { margin: 0; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; line-height: 1.5; }
.sf-c-dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--sf-red); }
.sf-c-closed { margin: 0; font-size: 17px; line-height: 1.7; }
.sf-c-form { display: flex; flex-direction: column; gap: clamp(36px, 5vw, 56px); margin: 0; }
.sf-c-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sf-c-err { font-size: 13px; font-weight: 400; color: var(--sf-red); line-height: 1.5; }
.sf-c-err:empty { display: none; }

/* Barre d'étapes */
.sf-c-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.sf-c .sf-c-step {
  display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 14px 0 0; min-height: 44px; text-align: left;
  background: none; border: 0; border-top: 4px solid var(--sf-line); border-radius: 0; color: var(--sf-ink); cursor: pointer;
  transition: border-color 400ms; font-weight: 400;
}
.sf-c .sf-c-step:disabled { cursor: default; opacity: 1; }
.sf-c .sf-c-step:hover:not(:disabled) .sf-c-step-l { text-decoration: underline; }
.sf-c-step-k { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sf-soft); }
.sf-c-step-dot {
  flex: none; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; letter-spacing: 0;
  background: #fff; color: var(--sf-faint); border: 1px solid var(--sf-bd); transition: all 300ms; line-height: 1;
}
.sf-c-step-l { font-size: clamp(13px, 1.4vw, 16px); font-weight: 700; line-height: 1.3; color: #aaa; }
.sf-c .sf-c-step.is-cur { border-top-color: var(--sf-red); }
.sf-c-step.is-cur .sf-c-step-k { color: var(--sf-red); }
.sf-c-step.is-cur .sf-c-step-dot { background: var(--sf-red); border-color: var(--sf-red); color: #fff; }
.sf-c .sf-c-step.is-done { border-top-color: var(--sf-ink); }
.sf-c-step.is-done .sf-c-step-dot { background: var(--sf-ink); border-color: var(--sf-ink); color: #fff; }
.sf-c-step.is-cur .sf-c-step-l, .sf-c-step.is-done .sf-c-step-l { color: var(--sf-ink); }

/* Piste horizontale */
.sf-c-track { overflow: hidden; margin: -4px; }
.sf-c-rail { display: flex; align-items: flex-start; transition: transform 700ms cubic-bezier(.65, 0, .35, 1); }
.sf-c-panel {
  flex: 0 0 100%; min-width: 0; padding: 4px;
  opacity: 0; visibility: hidden; transition: opacity 450ms ease, visibility 0s linear 700ms;
}
.sf-c-panel.is-on { opacity: 1; visibility: visible; transition: opacity 450ms ease, visibility 0s linear 0s; }
.sf-c-panel:not(.is-on) { max-height: 60vh; overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
  .sf-c-rail, .sf-c-panel, .sf-c-panel.is-on { transition: none; }
}
.sf-c-ph { display: flex; flex-direction: column; gap: 8px; margin-bottom: 32px; }
.sf-c-kicker { font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sf-red); }
.sf-c .sf-c-h2 { margin: 0; font-size: clamp(26px, 3vw, 38px); line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; text-transform: none; color: var(--sf-ink); outline: none; }
.sf-c-pdesc { margin: 0; max-width: 620px; font-size: 15px; line-height: 1.6; color: var(--sf-mute); }
.sf-c-body { display: flex; flex-direction: column; gap: 32px; padding: 0 0 8px; }
.sf-c-body--tight { gap: 24px; }
.sf-c-block { display: flex; flex-direction: column; gap: 16px; }
.sf-c-block--tight { gap: 12px; }
.sf-c-block--files { gap: 14px; }
.sf-c-block--checks { gap: 14px; }
.sf-c-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.sf-c-bt { font-size: 16px; font-weight: 700; }
.sf-c-label { font-size: 14px; font-weight: 700; }
.sf-c-micro { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sf-soft); }
.sf-c-micro--b { font-weight: 700; }
.sf-c-micro--r { font-weight: 700; color: var(--sf-red); }
.sf-c-acts { display: flex; gap: 18px; flex-wrap: wrap; }
.sf-c .sf-c-link {
  display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 0; min-height: 32px;
  background: none; border: 0; font-size: 14px; font-weight: 400; color: var(--sf-ink); text-decoration: underline; cursor: pointer;
}
.sf-c .sf-c-link:hover { color: var(--sf-red); background: none; }
.sf-c .sf-c-link--small { font-size: 13px; color: var(--sf-mute); min-height: 24px; }

/* Règlement */
.sf-c-reg {
  max-height: 280px; overflow-y: auto; display: flex; flex-direction: column; gap: 16px;
  padding: 22px 24px; background: var(--sf-bg); font-size: 14px; line-height: 1.65; color: #333;
}
.sf-c-art { display: flex; flex-direction: column; gap: 6px; }
.sf-c-art-t { font-size: 13px; font-weight: 700; color: var(--sf-ink); }
.sf-c-art p { margin: 0; }
.sf-c-art-li { display: block; }
.sf-c-check { display: flex; gap: 12px; align-items: flex-start; margin: 0; font-size: 14px; line-height: 1.55; font-weight: 400; cursor: pointer; }
.sf-c .sf-c-check input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--sf-red); }

/* Signature */
.sf-c-sigwrap { display: flex; flex-direction: column; gap: 10px; width: 100%; max-width: 520px; }
.sf-c-sig { position: relative; height: 170px; border: 1px solid var(--sf-bd); background: #fff; transition: border-color 200ms; }
.sf-c-sig.is-signed { border-color: var(--sf-ink); }
.sf-c-sig.is-err { border-color: var(--sf-red); }
.sf-c-sig canvas { position: absolute; inset: 0; width: 100%; height: 100%; touch-action: none; cursor: crosshair; }
.sf-c-sig-hint {
  position: absolute; left: 20px; right: 20px; bottom: 40px; padding-bottom: 8px; border-bottom: 1px solid var(--sf-bd);
  font-size: 13px; color: #aaa; pointer-events: none;
}
.sf-c-sig.is-signed .sf-c-sig-hint { display: none; }
.sf-c-sigline { font-size: 13px; color: var(--sf-soft); }

/* Boutons de navigation */
.sf-c-nav { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.sf-c-nav--end { justify-content: flex-end; }
.sf-c .sf-c-cta {
  display: inline-flex; align-items: center; gap: 10px; margin: 0; min-height: 50px;
  background: var(--sf-ink); color: #fff; border: 1px solid var(--sf-ink); border-radius: 999px;
  padding: 14px 26px; font-size: 16px; font-weight: 700; line-height: 1.2; cursor: pointer; transition: all 150ms;
}
.sf-c .sf-c-cta:hover { background: var(--sf-red); border-color: var(--sf-red); color: #fff; }
.sf-c .sf-c-cta--locked { background: var(--sf-faint); border-color: var(--sf-faint); }
.sf-c .sf-c-cta--red { background: var(--sf-red); border-color: var(--sf-red); padding: 16px 32px; font-size: 17px; }
.sf-c .sf-c-cta--red:hover { background: var(--sf-ink); border-color: var(--sf-ink); }
.sf-c .sf-c-cta:disabled { opacity: .6; cursor: wait; }
.sf-c .sf-c-back {
  margin: 0; padding: 0; min-height: 44px; background: none; border: 0; font-size: 15px; font-weight: 400;
  color: var(--sf-ink); text-decoration: underline; cursor: pointer;
}
.sf-c .sf-c-back:hover { color: var(--sf-red); background: none; }

/* Champs étape 2 */
.sf-c-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; }
.sf-c-field { display: flex; flex-direction: column; gap: 8px; }
.sf-c-field label { margin: 0; font-size: 14px; font-weight: 700; color: var(--sf-ink); }
.sf-c .sf-c-field input { height: 50px; font-size: 16px; }
.sf-c-statut { display: flex; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.sf-c-siret { flex: 1; min-width: 220px; transition: opacity 200ms; }
.sf-c-siret.is-off { opacity: .4; }
.sf-c .sf-c-siret input { letter-spacing: 0.04em; }
.sf-c-or { font-size: 13px; color: var(--sf-soft); padding-bottom: 16px; }
.sf-c-pills { display: flex; gap: 8px; flex-wrap: wrap; padding-bottom: 3px; }
.sf-c .sf-c-pill {
  display: inline-flex; align-items: center; gap: 8px; height: 44px; margin: 0; border-radius: 999px; padding: 0 18px;
  font-size: 14px; font-weight: 700; cursor: pointer; border: 1px solid var(--sf-ink); background: #fff; color: var(--sf-ink); transition: all 150ms;
}
.sf-c .sf-c-pill:hover { background: var(--sf-bg); color: var(--sf-ink); }
.sf-c .sf-c-pill.is-on { background: var(--sf-ink); color: #fff; }
.sf-c-tick { display: none; }
.sf-c-pill.is-on .sf-c-tick { display: inline; }

/* Pastilles de contrôle et dépôt */
.sf-c-needs { display: flex; gap: 8px; flex-wrap: wrap; }
.sf-c-need {
  display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; font-size: 13px; font-weight: 700;
  border: 1px solid var(--sf-bd); color: var(--sf-soft); background: #fff; transition: all 250ms;
}
.sf-c-need.is-ok { background: var(--sf-ink); border-color: var(--sf-ink); color: #fff; }
.sf-c-drop {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 0; padding: 36px 20px;
  border: 1px dashed var(--sf-faint); background: #fff; text-align: center; cursor: pointer; font-size: 14px; line-height: 1.5; font-weight: 400;
  transition: all 150ms;
}
.sf-c-drop:hover, .sf-c-drop:focus-within { border-color: var(--sf-ink); }
.sf-c-drop.is-over { border-color: var(--sf-red); background: #fff5f5; }
.sf-c-drop.is-err { border-color: var(--sf-red); }
.sf-c-drop input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.sf-c-drop-hint { font-size: 13px; color: var(--sf-soft); }
.sf-c-files { display: flex; flex-direction: column; }
.sf-c-file { display: flex; flex-direction: column; gap: 8px; padding: 12px 0; border-bottom: 1px solid var(--sf-line); animation: sfIn 300ms ease-out; }
.sf-c-file-top { display: flex; align-items: center; gap: 12px; }
.sf-c-file-name { flex: 1; min-width: 0; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sf-c-file-size { flex: none; font-size: 12px; color: var(--sf-soft); }
.sf-c .sf-c-file-rm {
  flex: none; width: 44px; height: 44px; margin: -6px -8px -6px 0; padding: 0; border: 0; background: none;
  cursor: pointer; font-size: 20px; line-height: 1; color: var(--sf-soft);
}
.sf-c .sf-c-file-rm:hover { color: var(--sf-red); background: none; }
.sf-c-file-bar { display: block; height: 2px; background: var(--sf-line); }
.sf-c-file-bar span { display: block; height: 2px; width: 0; background: var(--sf-ink); transition: width 200ms; }
.sf-c-file-err { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-size: 13px; color: var(--sf-red); }
.sf-c-file.is-err .sf-c-file-name { color: var(--sf-red); }
.sf-c-tags { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.sf-c .sf-c-tag {
  margin: 0; min-height: 32px; border-radius: 999px; padding: 4px 12px; font-size: 12px; font-weight: 700; cursor: pointer;
  border: 1px solid var(--sf-bd); background: #fff; color: var(--sf-mute);
}
.sf-c .sf-c-tag:hover { border-color: var(--sf-ink); background: #fff; color: var(--sf-ink); }
.sf-c .sf-c-tag.is-on { background: var(--sf-ink); border-color: var(--sf-ink); color: #fff; }

/* Étape 3 */
.sf-c-anon { display: flex; gap: 16px; padding: 20px 22px; background: var(--sf-ink); color: #fff; }
.sf-c-anon-dot { flex: none; width: 10px; height: 10px; margin-top: 6px; border-radius: 50%; background: var(--sf-red); }
.sf-c-anon > div { display: flex; flex-direction: column; gap: 6px; }
.sf-c-anon-k { font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; }
.sf-c-anon p { margin: 0; font-size: 14px; line-height: 1.6; color: #fff; }

/* Étape 4 */
.sf-c-recap { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 2px; background: var(--sf-line); border: 1px solid var(--sf-line); }
.sf-c-recap > div { display: flex; flex-direction: column; gap: 10px; padding: 22px; min-width: 0; }
.sf-c-recap-org { background: #fff; }
.sf-c-recap-jury { background: var(--sf-ink); color: #fff; }
.sf-c-recap-name { font-size: 18px; font-weight: 700; }
.sf-c-recap-info { font-size: 14px; line-height: 1.6; color: var(--sf-mute); }
.sf-c-recap-jury .sf-c-recap-info { color: var(--sf-faint); }
.sf-c-recap-small { font-size: 13px; color: var(--sf-mute); }
.sf-c-recap-files { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--sf-mute); overflow-wrap: anywhere; }
.sf-c-recap-jury .sf-c-recap-files { color: var(--sf-bd2); }
.sf-c-summary { padding: 14px 18px; border: 1px solid var(--sf-red); color: var(--sf-red); font-size: 14px; }

/* Confirmation */
.sf-c-done { display: flex; flex-direction: column; gap: 18px; padding: clamp(28px, 5vw, 48px); background: var(--sf-ink); color: #fff; }
.sf-c-done .sf-c-done-title { margin: 0; font-size: clamp(32px, 4vw, 52px); line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; text-transform: none; color: #fff; outline: none; }
.sf-c-done p { margin: 0; max-width: 600px; font-size: 15px; line-height: 1.7; color: #ccc; }

/* Jauge */
.sf-c-gauge { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--sf-soft); }
.sf-c-gauge-l { flex: none; }
.sf-c-gauge-bar { flex: 1; height: 2px; background: var(--sf-line); }
.sf-c-gauge-bar span { display: block; height: 2px; width: 0; background: var(--sf-ink); transition: width 300ms; }
.sf-c-gauge.is-over { color: var(--sf-red); }
.sf-c-gauge.is-over .sf-c-gauge-bar span { background: var(--sf-red); }

/* Prévisualisation */
html.sf-c-noscroll { overflow: hidden; }
.sf-c-modal {
  position: fixed; inset: 0; z-index: 100000; background: rgba(17, 17, 17, 0.72);
  display: flex; justify-content: center; align-items: flex-start; padding: clamp(16px, 4vw, 48px); overflow-y: auto;
}
.sf-c-modal-in { width: 100%; max-width: 760px; display: flex; flex-direction: column; gap: 14px; animation: sfIn 300ms ease-out; }
.sf-c-modal-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: #fff; font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.sf-c-modal-bar > div { display: flex; gap: 10px; }
.sf-c .sf-c-modal-pdf {
  display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid #fff;
  color: #fff; font-size: 13px; font-weight: 700; letter-spacing: 0; text-decoration: none;
}
.sf-c .sf-c-modal-pdf:hover { background: #fff; color: var(--sf-ink); }
.sf-c .sf-c-modal-x {
  width: 44px; height: 44px; margin: 0; padding: 0; border-radius: 50%; border: 1px solid #fff; background: none; color: #fff;
  font-size: 20px; line-height: 1; cursor: pointer;
}
.sf-c .sf-c-modal-x:hover { background: #fff; color: var(--sf-ink); }
.sf-c-paper {
  display: flex; flex-direction: column; gap: 22px; background: #fff; padding: clamp(28px, 6vw, 64px);
  font-size: 14px; line-height: 1.65; color: #333; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}
.sf-c-paper-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; padding-bottom: 20px; border-bottom: 2px solid var(--sf-ink); }
.sf-c-paper-t { font-size: clamp(22px, 3.4vw, 34px); font-weight: 700; letter-spacing: 0.18em; line-height: 1.15; color: var(--sf-ink); }
.sf-c-paper-e { font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sf-red); text-align: right; }
.sf-c-paper-body { display: flex; flex-direction: column; gap: 22px; }
.sf-c-paper-foot { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 20px; padding-top: 22px; border-top: 1px solid var(--sf-line); }
.sf-c-paper-foot > div { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--sf-ink); }
.sf-c-paper-sig { height: 90px; border-bottom: 1px solid var(--sf-ink); display: flex; align-items: flex-end; }
.sf-c-paper-sig img { max-width: 100%; max-height: 90px; object-fit: contain; object-position: left bottom; }
.sf-c-paper-nosig { font-size: 13px; color: #aaa; padding-bottom: 8px; }

@media (max-width: 640px) {
  .sf-c-steps { gap: 6px; }
  .sf-c-step-k { letter-spacing: 0.06em; font-size: 11px; }
  .sf-c-step-k { flex-wrap: wrap; }
  .sf-c-statut { align-items: stretch; flex-direction: column; gap: 10px; }
  .sf-c-or { padding: 0; }
  .sf-c-nav { flex-direction: column-reverse; align-items: stretch; }
  .sf-c .sf-c-cta { justify-content: center; }
  .sf-c .sf-c-back { align-self: flex-start; }
  .sf-c-modal { padding: 0; }
  .sf-c-modal-in { min-height: 100%; gap: 0; }
  .sf-c-modal-bar { padding: 12px 16px; background: var(--sf-ink); }
  .sf-c-paper { box-shadow: none; flex: 1; }
}
@media (max-width: 420px) {
  .sf-c-step-k { font-size: 0; gap: 0; }
  .sf-c-step-dot { font-size: 11px; }
}

/* ================= Espace sélection ================= */
.sf-s { background: #fff; }
.sf-s .sf-s-h1 {
  margin: 0; font-size: clamp(30px, 3.2vw, 42px); line-height: 1.1; font-weight: 700; letter-spacing: -0.02em;
  text-transform: none; color: var(--sf-ink);
}
.sf-s .sf-s-h2 { margin: 0; font-size: 28px; line-height: 1.2; font-weight: 700; letter-spacing: -0.01em; text-transform: none; color: var(--sf-ink); }
.sf-s-link { font-size: 14px; color: var(--sf-mute) !important; text-decoration: underline; background: none; border: 0; padding: 0; cursor: pointer; }
.sf-s-link:hover { color: var(--sf-red) !important; }
.sf-s-link--dark { color: var(--sf-ink) !important; align-self: flex-start; }

/* Connexion */
.sf-s-login { padding: clamp(48px, 8vw, 120px) clamp(20px, 4vw, 48px); }
.sf-s-login-in { max-width: 420px; margin: 0 auto; display: flex; flex-direction: column; gap: 32px; }
.sf-s-titles { display: flex; flex-direction: column; gap: 8px; }
.sf-s-titles--login { gap: 12px; }
.sf-s-intro { margin: 0; font-size: 15px; line-height: 1.6; color: var(--sf-mute); }
.sf-s-form { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.sf-s-alert { margin: 0; padding: 12px 16px; border: 1px solid var(--sf-red); color: var(--sf-red); font-size: 14px; line-height: 1.5; }
.sf-s-actions { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 8px; }
.sf-s .sf-s-btn {
  margin: 0; border-radius: 999px; padding: 12px 24px; min-height: 44px; font-size: 15px; font-weight: 700; line-height: 1.2; cursor: pointer;
  border: 1px solid var(--sf-red); background: var(--sf-red); color: #fff;
  transition: background-color 120ms linear, border-color 120ms linear;
}
.sf-s .sf-s-btn:hover { background: var(--sf-ink); border-color: var(--sf-ink); color: #fff; }
.sf-s-sent { display: flex; flex-direction: column; gap: 20px; }
.sf-s-box { margin: 0; padding: 16px 18px; border: 1px solid var(--sf-ink); font-size: 14px; line-height: 1.6; }
.sf-s-foot { margin: 0; padding-top: 24px; border-top: 1px solid var(--sf-line); font-size: 13px; line-height: 1.6; color: var(--sf-soft); }

/* Barre */
.sf-s-bar {
  display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 18px clamp(20px, 4vw, 48px); border-bottom: 1px solid var(--sf-ink);
}
.sf-s-bar-left { display: flex; align-items: center; gap: 12px 28px; flex-wrap: wrap; }
.sf-s-brand { font-size: 16px; font-weight: 700; }
.sf-s-bar-right { display: flex; align-items: center; gap: 12px 20px; flex-wrap: wrap; }
.sf-s-who { font-size: 14px; font-weight: 700; }
.sf-s-tabs { display: flex; gap: 8px; }
.sf-s .sf-s-pill {
  display: inline-flex; align-items: center; min-height: 36px; border-radius: 999px; padding: 8px 16px; font-size: 14px; font-weight: 700; line-height: 1.2;
  border: 1px solid var(--sf-ink); background: #fff; color: var(--sf-ink); text-decoration: none;
  transition: background-color 120ms linear, border-color 120ms linear;
}
.sf-s .sf-s-pill:hover { background: var(--sf-bg); color: var(--sf-ink); }
.sf-s .sf-s-pill.is-on { background: var(--sf-ink); color: #fff; }

/* Sections */
.sf-s-sec { padding: clamp(32px, 5vw, 64px) clamp(20px, 4vw, 48px); }
.sf-s-in { max-width: 900px; margin: 0 auto; display: flex; flex-direction: column; gap: 32px; }
.sf-s-in--wide { max-width: 1100px; }
.sf-s-sub { margin: 0; font-size: 15px; line-height: 1.6; color: var(--sf-mute); }

.sf-s-ul { display: flex; gap: 24px; flex-wrap: wrap; border-bottom: 1px solid var(--sf-line); }
.sf-s .sf-s-ul button {
  margin: 0 0 -1px; padding: 0 0 12px; min-height: 36px; background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0;
  font-size: 15px; font-weight: 700; line-height: 1.4; color: var(--sf-soft); cursor: pointer;
}
.sf-s .sf-s-ul button:hover { color: var(--sf-ink); background: none; }
.sf-s .sf-s-ul button.is-on { color: var(--sf-ink); border-bottom-color: var(--sf-ink); }
.sf-s-toolbar { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; border-bottom: 1px solid var(--sf-line); }
.sf-s-toolbar .sf-s-ul { border-bottom: 0; }
.sf-s .sf-s-search { width: 220px; height: 38px; margin-bottom: 8px; padding: 0 12px; font-size: 14px; }

.sf-s-empty { margin: 0; padding: 24px 0; font-size: 15px; color: var(--sf-soft); }

/* Jury */
.sf-s-list { display: flex; flex-direction: column; }
.sf-s-item { display: flex; flex-direction: column; border-bottom: 1px solid var(--sf-line); }
.sf-s-line { display: flex; align-items: center; gap: 12px 20px; padding: 18px 0; flex-wrap: wrap; }
.sf-s-id { flex: none; width: 120px; font-family: ui-monospace, Menlo, monospace; font-size: 17px; font-weight: 700; }
.sf-s-links { flex: 1; display: flex; gap: 8px 20px; font-size: 15px; min-width: 200px; flex-wrap: wrap; }
.sf-s-links--wrap { flex: none; }
.sf-s .sf-s-dl { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; color: var(--sf-ink); }
.sf-s .sf-s-dl:hover { color: var(--sf-red); }
.sf-s-scale { flex: none; display: flex; gap: 4px; }
.sf-s .sf-s-dot {
  width: 36px; height: 36px; margin: 0; padding: 0; border-radius: 50%; font-size: 14px; font-weight: 700; line-height: 1; cursor: pointer;
  border: 1px solid var(--sf-bd); background: #fff; color: var(--sf-ink);
  transition: background-color 120ms linear, border-color 120ms linear;
}
.sf-s .sf-s-dot:hover { border-color: var(--sf-ink); background: #fff; color: var(--sf-ink); }
.sf-s .sf-s-dot.is-on { background: var(--sf-red); border-color: var(--sf-red); color: #fff; }
.sf-s .sf-s-dot:disabled { cursor: default; opacity: 0.55; }
.sf-s .sf-s-dot:disabled:hover { border-color: var(--sf-bd); }
.sf-s .sf-s-dot.is-on:disabled { opacity: 1; }
.sf-s .sf-s-dot.is-on:disabled:hover { border-color: var(--sf-red); background: var(--sf-red); color: #fff; }
.sf-s .sf-s-avis[readonly] { background: var(--sf-bg); }
.sf-s-banner { margin: 0; padding: 12px 16px; border: 1px solid var(--sf-red); color: var(--sf-red); font-size: 14px; font-weight: 700; line-height: 1.5; }
.sf-s-banner--soft { border-color: var(--sf-bd); color: var(--sf-mute); font-weight: 400; }
.sf-s .sf-s-avis {
  width: 100%; margin: 0 0 18px; border: 1px solid var(--sf-bd); border-radius: 0; padding: 12px;
  font-size: 14px; line-height: 1.5; resize: vertical; min-height: 0; background: #fff; color: var(--sf-ink);
}

/* Admin */
.sf-s-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 40px; align-items: start; }
.sf-s-rows { display: flex; flex-direction: column; min-width: 0; }
.sf-s .sf-s-row {
  display: flex; align-items: center; gap: 16px; width: 100%; margin: 0; padding: 16px 14px; min-height: 48px;
  border: 0; border-bottom: 1px solid var(--sf-line); border-radius: 0; background: #fff; color: var(--sf-ink);
  text-align: left; cursor: pointer; font-weight: 400; transition: background-color 120ms linear;
}
.sf-s .sf-s-row:hover, .sf-s .sf-s-row.is-sel { background: var(--sf-bg); color: var(--sf-ink); }
.sf-s-row-id { flex: none; width: 104px; font-family: ui-monospace, Menlo, monospace; font-size: 14px; font-weight: 700; }
.sf-s-row-nom { flex: 1; min-width: 0; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sf-s-row-score { flex: none; min-width: 72px; text-align: right; font-size: 15px; font-weight: 700; color: var(--sf-ink); }
.sf-s-row-score.is-top { color: var(--sf-red); }
.sf-s-row-score.is-none { color: var(--sf-faint); }

.sf-s-card { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 26px; padding: 30px; background: var(--sf-bg); min-width: 0; }
.sf-s-card-head { display: flex; flex-direction: column; gap: 6px; }
.sf-s-card-meta { font-family: ui-monospace, Menlo, monospace; font-size: 13px; color: var(--sf-mute2); }
.sf-s-card-info { font-size: 14px; color: var(--sf-mute); line-height: 1.6; }
.sf-s .sf-s-zip {
  align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; border-radius: 999px; padding: 12px 20px;
  font-size: 14px; font-weight: 700; line-height: 1.2; text-decoration: none; border: 1px solid var(--sf-ink); background: var(--sf-ink); color: #fff;
  transition: background-color 120ms linear, border-color 120ms linear;
}
.sf-s .sf-s-zip:hover { background: var(--sf-red); border-color: var(--sf-red); color: #fff; }
.sf-s-alerts { margin: 0; padding: 10px 12px; border: 1px solid var(--sf-red); color: var(--sf-red); font-size: 13px; }
.sf-s-card-foot { display: flex; flex-direction: column; gap: 12px; padding-top: 22px; border-top: 1px solid var(--sf-bd2); }
.sf-s-card-score { font-size: 15px; font-weight: 700; }
.sf-s-card-avis { margin: 0; font-size: 14px; line-height: 1.5; color: #444; }
.sf-s-det { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }
.sf-s-det-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 8px 0; border-top: 1px solid var(--sf-bd2); }
.sf-s-det-name { flex: none; width: 64px; font-size: 14px; font-weight: 700; }
.sf-s-det-note { font-size: 14px; font-weight: 700; }
.sf-s-det-note.is-none { color: var(--sf-faint); }
.sf-s-det-avis { flex-basis: 100%; margin: 0; font-size: 13px; line-height: 1.5; color: #444; }
.sf-s-row-score { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.sf-s-row-votes { font-size: 12px; font-weight: 400; color: var(--sf-soft); }

/* Délibérations */
.sf-s-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.sf-s-delib { display: flex; align-items: center; gap: 10px 16px; flex-wrap: wrap; font-size: 14px; color: var(--sf-mute); }
.sf-s-delib.is-closed .sf-s-delib-state { color: var(--sf-red); font-weight: 700; }
.sf-s .sf-s-btn--line { min-height: 40px; padding: 10px 20px; font-size: 14px; background: #fff; color: var(--sf-ink); border-color: var(--sf-ink); }
.sf-s .sf-s-btn--line:hover { background: var(--sf-ink); color: #fff; }
.sf-s .sf-s-btn--line:disabled { opacity: 0.5; cursor: wait; }

/* Indicateur d'enregistrement */
.sf-s-status {
  position: fixed; right: 16px; bottom: 16px; z-index: 50; padding: 8px 12px; font-size: 13px;
  background: var(--sf-ink); color: #fff; opacity: 0; pointer-events: none; transition: opacity 120ms linear;
}
.sf-s-status.is-on { opacity: 1; }
.sf-s-status.is-err { background: var(--sf-red); }

@media (max-width: 900px) {
  .sf-s-card { position: static; }
}
@media (max-width: 640px) {
  .sf-s .sf-s-search { width: 100%; }
  .sf-s-toolbar { align-items: stretch; }
  .sf-s-id { width: auto; }
  .sf-s-scale { width: 100%; justify-content: space-between; }
  .sf-s .sf-s-dot { width: 44px; height: 44px; }
  .sf-s-row-id { width: 88px; }
  .sf-s-card { padding: 22px; }
}
@media (pointer: coarse) {
  .sf-s .sf-s-dot { width: 44px; height: 44px; }
}
