/* Inscription en ligne – Dragon Team Moreira */
:root {
  --bg: #0a0a0a;
  --panel: #121415;
  --panel-2: #181b1c;
  --line: rgba(255, 255, 255, 0.1);
  --line-2: rgba(255, 255, 255, 0.18);
  --text: #ffffff;
  --muted: rgba(255, 255, 255, 0.64);
  --cyan: #00d2ff;
  --cyan-soft: rgba(0, 210, 255, 0.1);
  --danger: #ff8a8a;
  --radius: 1rem;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.insc {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--bg);
  color: var(--text);
  font-family: Inter, system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 16px;
  line-height: 1.5;
}
[hidden] { display: none !important; }
svg { fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
a { color: var(--cyan); }
.insc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Barre du haut */
.insc-top {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.75rem max(1rem, env(safe-area-inset-left)) 0.75rem max(1rem, env(safe-area-inset-left));
  background: rgba(10, 10, 10, 0.88);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
}
.insc-top__logo img { display: block; width: 150px; height: auto; }
.insc-top__close {
  display: inline-flex; align-items: center; gap: 0.4rem;
  min-height: 2.75rem; padding: 0 0.95rem;
  border: 1px solid var(--line-2); border-radius: 999px;
  color: var(--muted); font-size: 0.88rem; font-weight: 600; text-decoration: none;
}
.insc-top__close svg { width: 1rem; height: 1rem; }
.insc-top__close:hover { color: #fff; border-color: rgba(255, 255, 255, 0.35); }

/* Mise en page */
.insc-main { width: 100%; max-width: 40rem; margin: 0 auto; padding: 1.5rem 1rem 7rem; }
.insc-progress { margin-bottom: 1.75rem; }
.insc-progress__bar { height: 6px; border-radius: 999px; background: rgba(255, 255, 255, 0.08); overflow: hidden; }
.insc-progress__bar span { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--cyan); transition: width 0.35s ease; }
.insc-progress__label { margin: 0.55rem 0 0; color: var(--muted); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.06em; }

.insc-step { animation: insc-in-fwd 0.34s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
.insc-step[data-dir="back"] { animation-name: insc-in-back; }
@keyframes insc-in-fwd { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }
@keyframes insc-in-back { from { opacity: 0; transform: translateX(-24px); } to { opacity: 1; transform: none; } }
/* les cartes de choix arrivent l'une après l'autre */
.insc-step .insc-choices > * { animation: insc-rise-in 0.36s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
.insc-step .insc-choices > :nth-child(2) { animation-delay: 0.05s; }
.insc-step .insc-choices > :nth-child(3) { animation-delay: 0.1s; }
.insc-step .insc-choices > :nth-child(4) { animation-delay: 0.15s; }
@keyframes insc-rise-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.insc-form { overflow-x: clip; }
@media (prefers-reduced-motion: reduce) { .insc-step, .insc-step .insc-choices > * { animation: none; } .insc-progress__bar span { transition: none; } }

.insc-kicker { margin: 1rem 0 0.6rem; color: var(--cyan); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; }
.insc-title {
  margin: 0; font-family: Anton, Impact, sans-serif; font-weight: 400;
  font-size: clamp(2.4rem, 9vw, 3.4rem); line-height: 1.1; text-transform: uppercase; letter-spacing: 0.01em;
}
.insc-title span { display: block; color: var(--cyan); }
.insc-title--sm { font-size: clamp(2rem, 7.5vw, 2.8rem); }
.insc-title:focus, .insc-q:focus { outline: none; }
.insc-lead { margin: 1rem 0 0; color: var(--muted); font-size: 1.02rem; }
.insc-q { margin: 0 0 1.25rem; font-size: clamp(1.45rem, 5.2vw, 1.8rem); line-height: 1.2; font-weight: 800; }
.insc-sub { margin: -0.75rem 0 1.25rem; color: var(--muted); }
.insc-h3 { margin: 2rem 0 0.9rem; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.insc-opt { margin-left: 0.35rem; color: var(--muted); font-size: 0.78rem; font-weight: 500; }

.insc-perks { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; gap: 0.6rem; }
.insc-perks li { display: flex; align-items: center; gap: 0.8rem; padding: 0.85rem 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); font-weight: 600; font-size: 0.95rem; }
.insc-perks svg { flex: none; width: 1.3rem; height: 1.3rem; color: var(--cyan); }

/* Choix (grosses cartes) */
.insc-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.insc-choices--list { grid-template-columns: minmax(0, 1fr); }
.insc-choice {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 0.9rem;
  min-height: 9rem; padding: 1.1rem; cursor: pointer;
  border: 1.5px solid var(--line-2); border-radius: 1.1rem; background: var(--panel);
  transition: border-color 0.15s, background-color 0.15s, transform 0.12s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.insc-choices--list .insc-choice { flex-direction: row; align-items: center; min-height: 0; padding: 1rem 1.1rem; }
.insc-choice input { position: absolute; opacity: 0; pointer-events: none; }
.insc-choice__icon { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; flex: none; border-radius: 999px; background: var(--cyan-soft); color: var(--cyan); }
.insc-choice__icon svg { width: 1.35rem; height: 1.35rem; }
.insc-choice__text { display: flex; flex-direction: column; gap: 0.1rem; }
.insc-choice__text strong { font-size: 1.1rem; font-weight: 800; }
.insc-choice__text small { color: var(--muted); font-size: 0.86rem; }
.insc-choice:hover { border-color: rgba(0, 210, 255, 0.5); }
.insc-choice:active { transform: scale(0.97); border-color: rgba(0, 210, 255, 0.7); }
.insc-choice.is-pop .insc-choice__icon { animation: insc-pop 0.28s cubic-bezier(0.2, 0.7, 0.2, 1); }
@keyframes insc-pop { 0% { transform: scale(1); } 45% { transform: scale(1.18); } 100% { transform: scale(1); } }
.insc-choice__icon { transition: background-color 0.15s, color 0.15s; }
.insc-choice:has(input:checked) { border-color: var(--cyan); background: rgba(0, 210, 255, 0.08); }
.insc-choice:has(input:checked) .insc-choice__icon { background: var(--cyan); color: #06181d; }
.insc-choice:has(input:focus-visible) { outline: 2px solid var(--cyan); outline-offset: 3px; }

/* Champs */
.insc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 0.85rem; }
.insc-field { display: flex; flex-direction: column; gap: 0.4rem; min-width: 0; }
.insc-field--wide { grid-column: 1 / -1; }
.insc-field label { font-size: 0.88rem; font-weight: 700; }
.insc-field input, .insc-field textarea {
  width: 100%; min-height: 3.1rem; padding: 0.75rem 0.9rem;
  border: 1.5px solid var(--line-2); border-radius: 0.8rem; background: var(--panel);
  color: #fff; font: inherit; font-size: 16px; color-scheme: dark;
  transition: border-color 0.2s, background-color 0.2s;
}
.insc-field textarea { resize: vertical; min-height: 5.5rem; }
.insc-field input::placeholder, .insc-field textarea::placeholder { color: rgba(255, 255, 255, 0.35); }
.insc-field input:focus, .insc-field textarea:focus { outline: none; border-color: var(--cyan); background: var(--panel-2); box-shadow: 0 0 0 3px rgba(0, 210, 255, 0.18); }
.insc-field [aria-invalid="true"] { border-color: var(--danger); }
.insc-field__error { margin: 0.1rem 0 0; color: var(--danger); font-size: 0.82rem; font-weight: 600; }
.insc-suffix { position: relative; }
.insc-suffix input { padding-right: 2.6rem; }
.insc-suffix span { position: absolute; right: 0.9rem; top: 50%; transform: translateY(-50%); color: var(--muted); font-weight: 600; }

/* Photo */
.insc-photo { display: flex; align-items: center; gap: 1rem; margin-top: 1.25rem; padding: 1rem; border: 1.5px dashed var(--line-2); border-radius: var(--radius); }
.insc-photo__preview { flex: none; display: grid; place-items: center; width: 4.6rem; height: 4.9rem; border-radius: 0.6rem; background: var(--panel-2); color: rgba(255, 255, 255, 0.3); overflow: hidden; }
.insc-photo__preview svg { width: 2.2rem; height: 2.2rem; }
.insc-photo__preview img { width: 100%; height: 100%; object-fit: cover; }
.insc-photo__title { margin: 0; font-weight: 700; }
.insc-photo__title span { margin-left: 0.3rem; color: var(--muted); font-size: 0.78rem; font-weight: 500; }
.insc-photo__hint { margin: 0.1rem 0 0.6rem; color: var(--muted); font-size: 0.85rem; }
.insc-photo__actions { display: flex; align-items: center; gap: 0.8rem; flex-wrap: wrap; }
#f-photo:focus-visible + .insc-link, .insc-photo__actions label:has(+ #f-photo:focus-visible) { outline: 2px solid var(--cyan); outline-offset: 2px; }

/* Segments (Père / Mère…) */
.insc-seg { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.25rem 0 0; padding: 0; border: 0; }
.insc-seg legend { width: 100%; margin-bottom: 0.5rem; padding: 0; font-size: 0.88rem; font-weight: 700; }
.insc-seg label { flex: 1 1 auto; position: relative; }
.insc-seg input { position: absolute; opacity: 0; pointer-events: none; }
.insc-seg span {
  display: flex; align-items: center; justify-content: center; min-height: 3rem; padding: 0.6rem 1rem;
  border: 1.5px solid var(--line-2); border-radius: 0.8rem; background: var(--panel);
  font-weight: 700; cursor: pointer; text-align: center; transition: border-color 0.2s, background-color 0.2s;
}
.insc-seg input:checked + span { border-color: var(--cyan); background: var(--cyan); color: #06181d; }
.insc-seg input:focus-visible + span { outline: 2px solid var(--cyan); outline-offset: 2px; }
.insc-seg--two label { flex: 1 1 0; }
.insc-seg > .insc-field__error { width: 100%; }

/* Cartes (accords, contacts) */
.insc-card { padding: 1.1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.insc-card + .insc-card { margin-top: 0.85rem; }
.insc-card__title { margin: 0 0 0.75rem; font-weight: 800; font-size: 1.05rem; }
.insc-card__text { margin: -0.3rem 0 0.9rem; color: var(--muted); font-size: 0.92rem; }
.insc-card .insc-seg { margin-top: 0; }
.insc-read {
  display: flex; align-items: center; gap: 0.7rem; min-height: 3rem; padding: 0.7rem 0.9rem; margin-bottom: 0.85rem;
  border-radius: 0.8rem; background: var(--cyan-soft); color: var(--cyan); font-weight: 700; text-decoration: none;
}
.insc-read svg { width: 1.2rem; height: 1.2rem; flex: none; }
.insc-read small { margin-left: auto; color: var(--muted); font-weight: 500; }
.insc-check { display: flex; align-items: flex-start; gap: 0.75rem; cursor: pointer; font-weight: 600; }
.insc-check input { flex: none; width: 1.4rem; height: 1.4rem; margin: 0.05rem 0 0; accent-color: var(--cyan); }
.insc-contacts { display: grid; gap: 0.85rem; }
.insc-contact { padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255, 255, 255, 0.02); }
.insc-contact > p { margin: 0 0 0.7rem; font-weight: 800; }

/* Boutons */
.insc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  min-height: 3.25rem; padding: 0.75rem 1.4rem; border: 1.5px solid transparent; border-radius: 999px;
  font: inherit; font-weight: 800; font-size: 1rem; cursor: pointer; text-decoration: none;
  transition: background-color 0.2s, border-color 0.2s, opacity 0.2s, transform 0.15s;
}
.insc-btn svg { width: 1.2rem; height: 1.2rem; }
.insc-btn--primary { background: var(--cyan); color: #06181d; }
.insc-btn--primary:hover { background: #45e0ff; }
.insc-btn--ghost { border-color: var(--line-2); background: transparent; color: #fff; }
.insc-btn--ghost:hover { border-color: rgba(255, 255, 255, 0.4); }
.insc-btn--sm { min-height: 2.75rem; padding: 0.5rem 1rem; font-size: 0.9rem; }
.insc-btn--block { width: 100%; margin-top: 1.5rem; min-height: 3.6rem; font-size: 1.05rem; }
.insc-btn:focus-visible, .insc-link:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
.insc-btn:active { transform: scale(0.98); }
.insc-btn.is-busy { opacity: 0.75; cursor: progress; }
.insc-link { min-height: 2.75rem; padding: 0 0.25rem; border: 0; background: none; color: var(--muted); font: inherit; font-size: 0.9rem; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.insc-link:hover { color: #fff; }

/* Navigation bas */
.insc-nav {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 15;
  display: flex; justify-content: space-between; gap: 0.75rem;
  padding: 0.85rem 1rem calc(0.85rem + env(safe-area-inset-bottom));
  background: rgba(10, 10, 10, 0.92); border-top: 1px solid var(--line);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
}
.insc-nav__next { flex: 1; max-width: 22rem; margin-left: auto; }
.insc-nav--intro .insc-nav__next { max-width: none; }
@media (min-width: 768px) and (min-height: 501px) {
  .insc-main { padding-top: 2.5rem; padding-bottom: 3rem; }
  .insc-nav { position: static; padding: 2rem 0 0; background: none; border: 0; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .insc-nav--intro .insc-nav__next { flex: 0 1 auto; margin-left: 0; padding-left: 2.2rem; padding-right: 2.2rem; }
  .insc-choice { min-height: 10rem; padding: 1.3rem; }
}
.insc-error { margin: 0.9rem 0 0; color: var(--danger); font-weight: 600; font-size: 0.9rem; }
.insc-error--step { margin-top: 1.1rem; }

/* Écran final */
.insc-done__badge { display: grid; place-items: center; width: 3.6rem; height: 3.6rem; margin: 0.5rem 0 1.1rem; border-radius: 999px; background: var(--cyan); color: #06181d; }
.insc-done__badge svg { width: 1.8rem; height: 1.8rem; stroke-width: 2.6; }
.insc-docs { list-style: none; margin: 1.25rem 0 0; padding: 0; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.insc-docs li { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.85rem 1rem; }
.insc-docs li + li { border-top: 1px solid var(--line); }
.insc-docs svg { flex: none; width: 1.15rem; height: 1.15rem; margin-top: 0.15rem; color: var(--cyan); stroke-width: 2.4; }
.insc-docs span { display: flex; flex-direction: column; }
.insc-docs strong { font-weight: 700; }
.insc-docs small { color: var(--muted); font-size: 0.84rem; }
.insc-todo { list-style: none; margin: 0; padding: 0; counter-reset: todo; display: grid; gap: 0.7rem; }
.insc-todo > li {
  position: relative; display: flex; flex-direction: column; gap: 0.15rem;
  padding: 0.95rem 1rem 0.95rem 3.4rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel);
  counter-increment: todo;
}
.insc-todo > li::before {
  content: counter(todo); position: absolute; left: 1rem; top: 0.95rem;
  display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 999px;
  background: var(--cyan-soft); color: var(--cyan); font-weight: 800; font-size: 0.85rem;
}
.insc-todo > li > strong { font-weight: 700; }
.insc-todo > li > span { color: var(--muted); font-size: 0.88rem; }
.insc-todo__link { display: inline-flex; align-items: center; gap: 0.4rem; align-self: flex-start; min-height: 2.5rem; margin-top: 0.3rem; font-size: 0.9rem; font-weight: 700; text-decoration: none; }
.insc-todo__link svg { width: 1rem; height: 1rem; }
.insc-more { margin-top: 0.85rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.insc-more summary { display: flex; align-items: center; justify-content: space-between; min-height: 3.2rem; padding: 0.6rem 1rem; font-weight: 700; cursor: pointer; list-style: none; }
.insc-more summary::-webkit-details-marker { display: none; }
.insc-more summary::after { content: ''; width: 0.5rem; height: 0.5rem; border-right: 2px solid var(--cyan); border-bottom: 2px solid var(--cyan); transform: rotate(45deg) translateY(-2px); transition: transform 0.2s; }
.insc-more[open] summary::after { transform: rotate(-135deg); }
.insc-more summary:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; border-radius: var(--radius); }
.insc-more ul { margin: 0; padding: 0 1rem 1rem 2.2rem; color: var(--muted); font-size: 0.9rem; display: grid; gap: 0.4rem; }
.insc-more ul strong { color: #fff; }
.insc-done__actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-top: 2rem; }
.insc-noscript { padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius); }

@media (max-width: 420px) {
  .insc-grid { grid-template-columns: minmax(0, 1fr); }
  .insc-choice { min-height: 8.2rem; padding: 1rem; }
  .insc-top__logo img { width: 130px; }
}

/* Signature à l'écran */
.insc-step[data-step="sign"] .insc-seg { margin-top: 1.5rem; }
.insc-pad { margin-top: 1.25rem; }
.insc-pad__label { margin: 0 0 0.5rem; font-size: 0.88rem; font-weight: 700; }
.insc-pad__box { position: relative; height: 12rem; border-radius: 1rem; background: #ffffff; overflow: hidden; box-shadow: inset 0 0 0 1.5px rgba(0, 0, 0, 0.08); }
.insc-pad__box canvas { position: absolute; inset: 0; width: 100%; height: 100%; touch-action: none; cursor: crosshair; }
.insc-pad__hint { position: absolute; left: 0; right: 0; top: 42%; text-align: center; color: #8a979c; font-size: 0.95rem; font-weight: 600; pointer-events: none; }
.insc-pad__line { position: absolute; left: 1.25rem; right: 1.25rem; bottom: 2.4rem; border-bottom: 1.5px dashed #c5d0d3; pointer-events: none; }
.insc-pad__actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 0.35rem; }
.insc-pad__note { color: var(--muted); font-size: 0.82rem; }
.insc-btn--share { margin-top: 0.7rem; }

/* Corrections (audit) */
.insc-choices > .insc-field__error { grid-column: 1 / -1; margin: 0; }
.insc-choice.is-checked { border-color: var(--cyan); background: rgba(0, 210, 255, 0.08); }
.insc-choice.is-checked .insc-choice__icon { background: var(--cyan); color: #06181d; }

/* Accueil simplifié */
.insc-meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; margin: 1.25rem 0 0; color: var(--muted); font-size: 0.9rem; font-weight: 600; }
.insc-meta span { display: inline-flex; align-items: center; gap: 0.45rem; }
.insc-meta svg { width: 1.1rem; height: 1.1rem; color: var(--cyan); }

/* Une signature par document */
.insc-step--sign .insc-kicker { margin-top: 0; }
.insc-step--sign .insc-q { margin-bottom: 1rem; }
.insc-sign__what { padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.insc-sign__label { margin: 0 0 0.6rem; color: var(--cyan); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.insc-sign__points { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.5rem; }
.insc-sign__points li { position: relative; padding-left: 1.2rem; font-size: 0.93rem; line-height: 1.45; }
.insc-sign__points li::before { content: ''; position: absolute; left: 0.1rem; top: 0.55em; width: 0.4rem; height: 0.4rem; border-radius: 999px; background: var(--cyan); }
.insc-recap { margin: 0; display: grid; gap: 0.35rem; }
.insc-recap div { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 0.75rem; font-size: 0.92rem; }
.insc-recap dt { color: var(--muted); }
.insc-recap dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.insc-sign__edit { margin-top: 0.3rem; padding-left: 0; }
.insc-sign__read { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.75rem; margin-top: 0.6rem; font-size: 0.9rem; font-weight: 700; text-decoration: none; }
.insc-sign__read svg { width: 1.1rem; height: 1.1rem; }
.insc-step--sign .insc-pad { margin-top: 1rem; }
.insc-step--sign .insc-pad__box { height: 10.5rem; }
.insc-todo__docs { margin: 0.35rem 0 0; padding: 0; list-style: none; display: grid; gap: 0.25rem; color: var(--muted); font-size: 0.88rem; }
.insc-todo__docs b { color: #fff; font-weight: 600; }
@media (max-width: 420px) { .insc-recap div { grid-template-columns: 5.6rem minmax(0, 1fr); gap: 0.5rem; } }

/* Recadrage de la photo */
.insc-noscroll, .insc-noscroll body { overflow: hidden; }
.insc-crop {
  position: fixed; inset: 0; z-index: 50;
  display: flex; align-items: center; justify-content: center;
  padding: 1rem; background: rgba(0, 0, 0, 0.82);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.insc-crop__panel {
  width: 100%; max-width: 24rem; max-height: 100%; overflow: auto;
  padding: 1.25rem; border: 1px solid var(--line); border-radius: 1.25rem; background: var(--panel);
}
.insc-crop__title { margin: 0; font-size: 1.2rem; font-weight: 800; }
.insc-crop__hint { margin: 0.35rem 0 1rem; color: var(--muted); font-size: 0.88rem; }
.insc-crop__frame {
  position: relative; width: min(100%, 16rem); aspect-ratio: 83.5 / 88.5; margin: 0 auto;
  overflow: hidden; border-radius: 0.5rem; background: #fff; touch-action: none; cursor: grab;
  box-shadow: 0 0 0 2px var(--cyan);
}
.insc-crop__frame:active { cursor: grabbing; }
.insc-crop__frame:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.insc-crop__frame img { position: absolute; left: 0; top: 0; max-width: none; transform-origin: 0 0; user-select: none; -webkit-user-drag: none; pointer-events: none; }
.insc-crop__oval {
  position: absolute; left: 24%; right: 24%; top: 12%; height: 58%;
  border: 2px dashed rgba(255, 255, 255, 0.9); border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35), inset 0 0 0 1px rgba(0, 0, 0, 0.35);
  pointer-events: none;
}
.insc-crop__zoom { display: flex; align-items: center; gap: 0.7rem; margin: 1.1rem 0 0; color: var(--muted); }
.insc-crop__zoom svg { flex: none; width: 1.25rem; height: 1.25rem; }
.insc-crop__zoom input { flex: 1; accent-color: var(--cyan); min-height: 2.75rem; }
.insc-crop__actions { display: flex; gap: 0.75rem; margin-top: 1rem; }
.insc-crop__actions .insc-btn { flex: 1; }

/* Liens confidentialité */
.insc-meta a { display: inline-flex; align-items: center; gap: 0.45rem; color: var(--muted); text-decoration: underline; text-decoration-color: rgba(255, 255, 255, 0.25); text-underline-offset: 3px; }
.insc-meta a:hover { color: #fff; }
.insc-foot { margin: 3rem 0 0; color: rgba(255, 255, 255, 0.4); font-size: 0.8rem; text-align: center; }
.insc-foot a { color: rgba(255, 255, 255, 0.6); }

/* ---------- Écran final : « presque fini » ---------- */
.insc-progress.is-almost .insc-progress__bar span { background: linear-gradient(90deg, var(--cyan) 0 100%); }
.insc-progress.is-almost .insc-progress__label { color: #ffc93c; }
.insc-kicker--warn { margin-top: 0; color: #ffc93c; }
.insc-alert {
  display: flex; gap: 0.75rem; align-items: flex-start;
  margin: 1.1rem 0 1.5rem; padding: 0.9rem 1rem;
  border: 1px solid rgba(255, 201, 60, 0.45); border-radius: var(--radius);
  background: rgba(255, 201, 60, 0.08); color: #ffe7a6; font-size: 0.93rem; line-height: 1.45;
}
.insc-alert svg { flex: none; width: 1.3rem; height: 1.3rem; margin-top: 0.05rem; color: #ffc93c; }
.insc-alert p { margin: 0; }
.insc-alert strong { color: #fff; }

.insc-path { list-style: none; margin: 0; padding: 0; counter-reset: path; }
.insc-path__item { position: relative; display: flex; gap: 0.9rem; padding-bottom: 1rem; counter-increment: path; }
.insc-path__item::before { /* trait qui relie les étapes */
  content: ''; position: absolute; left: calc(1.25rem - 1px); top: 2.6rem; bottom: 0.1rem;
  width: 2px; background: rgba(255, 255, 255, 0.12);
}
.insc-path__item:last-child::before { display: none; }
.insc-path__num {
  position: relative; z-index: 1; flex: none; display: grid; place-items: center;
  width: 2.5rem; height: 2.5rem; border-radius: 999px;
  border: 2px solid rgba(255, 255, 255, 0.22); background: var(--bg);
  color: #fff; font-weight: 800; font-size: 1.05rem;
}
.insc-path__num:empty::before { content: counter(path); }
.insc-path__num svg { width: 1.2rem; height: 1.2rem; }
.insc-path__body {
  flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.3rem;
  padding: 0.95rem 1.05rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel);
}
.insc-path__title { font-size: 1.12rem; font-weight: 800; line-height: 1.25; }
.insc-path__text { color: var(--muted); font-size: 0.95rem; line-height: 1.45; }
.insc-path__list { margin: 0.15rem 0 0; padding: 0; list-style: none; display: grid; gap: 0.35rem; color: var(--muted); font-size: 0.93rem; line-height: 1.4; }
.insc-path__list b { color: #fff; font-weight: 700; }
.insc-path__link {
  display: inline-flex; align-items: center; gap: 0.45rem; align-self: flex-start;
  min-height: 2.75rem; margin-top: 0.2rem; padding: 0 1rem;
  border: 1.5px solid rgba(0, 210, 255, 0.45); border-radius: 999px;
  color: var(--cyan); font-size: 0.92rem; font-weight: 700; text-decoration: none;
}
.insc-path__link svg { width: 1rem; height: 1rem; }
.insc-path__item .insc-btn--block { margin-top: 0.6rem; }
.insc-path__item .insc-btn--share { margin-top: 0.5rem; }
/* étape en cours */
.insc-path__item.is-current .insc-path__num { border-color: var(--cyan); background: var(--cyan); color: #06181d; }
.insc-path__item.is-current .insc-path__body { border-color: rgba(0, 210, 255, 0.55); background: rgba(0, 210, 255, 0.06); }
/* étape faite */
.insc-path__item.is-done .insc-path__num { border-color: var(--cyan); background: var(--bg); color: var(--cyan); }
.insc-path__item.is-done .insc-path__num::before { content: '✓'; }
.insc-path__item.is-done::before { background: var(--cyan); }
/* objectif */
.insc-path__item--goal .insc-path__num { border-style: dashed; border-color: #ffc93c; color: #ffc93c; }
.insc-path__item--goal .insc-path__body { border: 1.5px dashed rgba(255, 201, 60, 0.5); background: transparent; }
.insc-path__item--goal .insc-path__title { color: #ffc93c; }
.insc-step--done .insc-more { margin-top: 0.5rem; }

/* ---------- Confort sur téléphone ---------- */
html { scroll-padding-top: 5.5rem; scroll-padding-bottom: 7.5rem; }
.insc-top { padding-top: max(0.75rem, env(safe-area-inset-top)); }
.insc button, .insc a, .insc label, .insc-choice { -webkit-tap-highlight-color: transparent; }
.insc-field input:-webkit-autofill,
.insc-field input:-webkit-autofill:hover,
.insc-field input:-webkit-autofill:focus {
  -webkit-text-fill-color: #fff;
  -webkit-box-shadow: 0 0 0 100px var(--panel) inset;
  caret-color: #fff;
  transition: background-color 9999s ease-out;
}
.insc-field input[type="date"] { -webkit-appearance: none; appearance: none; text-align: left; min-width: 0; display: block; }
.insc-field input[type="date"]::-webkit-date-and-time-value { text-align: left; }
.insc-field input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(1); opacity: 0.7; }
@media (max-width: 420px) {
  .insc-main { padding-top: 1.1rem; }
  .insc-progress { margin-bottom: 1.25rem; }
  .insc-q { margin-bottom: 1rem; }
  .insc-nav { gap: 0.6rem; padding-left: 0.85rem; padding-right: 0.85rem; }
  .insc-nav__back { padding-left: 1rem; padding-right: 1.1rem; }
  .insc-path__item { gap: 0.7rem; }
  .insc-path__num { width: 2.2rem; height: 2.2rem; font-size: 0.95rem; }
  .insc-path__item::before { left: calc(1.1rem - 1px); top: 2.3rem; }
  .insc-path__body { padding: 0.85rem 0.9rem; }
  .insc-path__title { font-size: 1.05rem; }
}
@media (max-width: 360px) {
  .insc-nav__back span { display: none; }
  .insc-nav__back { min-width: 3.25rem; padding: 0; }
  .insc-choice { padding: 0.9rem; }
  .insc-choice__text strong { font-size: 1rem; }
}

/* Téléphone à l'horizontale */
@media (max-height: 500px) and (orientation: landscape) {
  .insc-top { position: static; padding-top: 0.5rem; padding-bottom: 0.5rem; }
  .insc-main { max-width: 44rem; padding-bottom: 6rem; }
  .insc-nav { padding-top: 0.55rem; padding-bottom: calc(0.55rem + env(safe-area-inset-bottom)); padding-left: max(1rem, env(safe-area-inset-left)); padding-right: max(1rem, env(safe-area-inset-right)); }
  .insc-nav .insc-btn { min-height: 2.9rem; }
  .insc-choice { min-height: 0; }
  .insc-step--sign .insc-pad__box { height: 9rem; }
  .insc-crop__panel { max-width: 44rem; display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 1.5rem; align-items: start; }
  .insc-crop__frame { grid-column: 1; grid-row: 1 / span 4; width: calc((100vh - 4.5rem) * 83.5 / 88.5); width: calc((100dvh - 4.5rem) * 83.5 / 88.5); margin: 0; }
  .insc-crop__title, .insc-crop__hint, .insc-crop__zoom, .insc-crop__actions { grid-column: 2; }
}

/* Recadrage : boutons de zoom et compatibilité */
.insc-crop__frame { height: 17rem; } /* remplacé par la hauteur exacte calculée en JavaScript */
@supports (aspect-ratio: 1) { .insc-crop__frame { height: auto; } }
.insc-crop__frame img { will-change: transform; -webkit-touch-callout: none; }
.insc-crop__zbtn {
  flex: none; display: grid; place-items: center; width: 2.75rem; height: 2.75rem;
  border: 1.5px solid var(--line-2); border-radius: 999px; background: transparent; color: #fff; cursor: pointer;
}
.insc-crop__zbtn svg { width: 1.2rem; height: 1.2rem; stroke-width: 2.4; }
.insc-crop__zbtn:active { background: rgba(255, 255, 255, 0.08); }
.insc-crop__zbtn:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
.insc-photo__body .insc-field__error { margin-top: 0.5rem; }

/* ---------- Envoi par mail (texte à copier) ---------- */
.insc-mail__addr { color: #fff; font-weight: 700; word-break: break-all; }
.insc-mail { display: grid; gap: 0.6rem; margin-top: 0.6rem; }
.insc-mail__row { border: 1px solid var(--line); border-radius: 12px; background: rgba(255, 255, 255, 0.03); padding: 0.6rem 0.75rem 0.7rem; min-width: 0; }
.insc-mail__head { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.insc-mail__label { color: var(--muted); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.insc-mail__copy {
  display: inline-flex; align-items: center; gap: 0.35rem; min-height: 2.25rem; padding: 0 0.8rem;
  border: 1.5px solid rgba(0, 210, 255, 0.45); border-radius: 999px; background: none;
  color: var(--cyan); font: inherit; font-size: 0.85rem; font-weight: 700; cursor: pointer;
}
.insc-mail__copy svg { width: 0.95rem; height: 0.95rem; }
.insc-mail__copy.is-copied { background: var(--cyan); border-color: var(--cyan); color: #06181d; }
.insc-mail__value { margin: 0.3rem 0 0; color: #fff; font-size: 0.95rem; line-height: 1.4; word-break: break-word; user-select: all; -webkit-user-select: all; }
.insc-mail__value--body { font: inherit; font-size: 0.9rem; white-space: pre-wrap; max-height: 16rem; overflow: auto; user-select: text; -webkit-user-select: text; }
.insc-mail__hint { margin: 0.1rem 0 0; color: var(--muted); font-size: 0.9rem; line-height: 1.45; }
.insc-mail__hint b { color: #fff; }
.insc-path__item .insc-btn[aria-expanded="true"] { background: transparent; color: var(--cyan); border-color: rgba(0, 210, 255, 0.55); }

/* ---------- Questionnaire de santé ---------- */
.insc-sante__priv { display: flex; align-items: flex-start; gap: 0.5rem; margin: 0 0 1.2rem; padding: 0.7rem 0.85rem; border: 1px solid rgba(0, 210, 255, 0.3); border-radius: 12px; background: rgba(0, 210, 255, 0.06); color: var(--muted); font-size: 0.86rem; line-height: 1.45; }
.insc-sante__priv svg { flex: none; width: 1.1rem; height: 1.1rem; margin-top: 0.1rem; fill: none; stroke: var(--cyan); stroke-width: 2; }
.insc-sante__note { margin: 0 0 0.8rem; color: var(--muted); font-size: 0.9rem; font-style: italic; }
.insc-sante__head { margin: 1.4rem 0 0.4rem; color: var(--cyan); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.insc-q2 { display: flex; align-items: center; justify-content: space-between; gap: 0.9rem; padding: 0.75rem 0; border-top: 1px solid var(--line); }
.insc-q2__text { margin: 0; flex: 1; min-width: 0; font-size: 0.95rem; line-height: 1.4; }
.insc-q2__opts { flex: none; display: flex; gap: 0.4rem; }
.insc-q2__opt { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 3.2rem; min-height: 2.6rem; padding: 0 0.7rem; border: 1.5px solid var(--line); border-radius: 999px; font-size: 0.9rem; font-weight: 700; cursor: pointer; user-select: none; }
.insc-q2__opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.insc-q2__opt:has(input:checked) { border-color: var(--cyan); background: rgba(0, 210, 255, 0.14); color: #fff; }
.insc-q2__opt:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(0, 210, 255, 0.4); }
.insc-sante__verdict { margin: 1.3rem 0 0; padding: 0.8rem 1rem; border-radius: 12px; font-size: 0.92rem; font-weight: 600; line-height: 1.45; }
.insc-sante__verdict.is-ok { border: 1px solid rgba(64, 200, 120, 0.5); background: rgba(64, 200, 120, 0.12); color: #bdf0cf; }
.insc-sante__verdict.is-warn { border: 1px solid rgba(255, 201, 60, 0.5); background: rgba(255, 201, 60, 0.1); color: #ffe7a6; }
@media (max-width: 400px) { .insc-q2 { flex-direction: column; align-items: stretch; gap: 0.5rem; } .insc-q2__opts { justify-content: flex-start; } }

/* Droit à l’image : le texte à lire avant de choisir */
.insc-image__doc { margin: 0 0 1.1rem; }
.insc-sign__choice { margin: 1rem 0 0; }

/* Avertissement avant le téléchargement */
.insc-warn {
  position: fixed; inset: 0; z-index: 60;
  display: flex; align-items: center; justify-content: center;
  padding: 1rem; background: rgba(0, 0, 0, 0.82);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.insc-warn[hidden] { display: none; }
.insc-warn__panel {
  width: 100%; max-width: 24rem; max-height: 100%; overflow: auto; text-align: center;
  padding: 1.5rem 1.25rem 1.25rem; border: 1px solid var(--line); border-radius: 1.25rem; background: var(--panel);
}
.insc-warn__icon { display: inline-flex; width: 3.25rem; height: 3.25rem; align-items: center; justify-content: center; border-radius: 999px; background: rgba(255, 184, 0, 0.14); color: #ffb800; }
.insc-warn__icon svg { width: 1.7rem; height: 1.7rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.insc-warn__title { margin: 0.8rem 0 0.5rem; font-size: 1.2rem; font-weight: 800; line-height: 1.25; }
.insc-warn__text { margin: 0; color: var(--muted); font-size: 0.95rem; line-height: 1.5; }
.insc-warn__text b { color: #fff; }
.insc-warn__actions { display: flex; gap: 0.75rem; margin-top: 1.25rem; }
.insc-warn__actions .insc-btn { flex: 1; }
@media (max-width: 380px) { .insc-warn__actions { flex-direction: column-reverse; } }

/* Accueil : les 3 parties du parcours */
.insc-plan { list-style: none; counter-reset: plan; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 0.75rem; }
.insc-plan li { counter-increment: plan; position: relative; padding: 0.15rem 0 0 2.6rem; display: grid; gap: 0.15rem; }
.insc-plan li::before { content: counter(plan); position: absolute; left: 0; top: 0; width: 1.9rem; height: 1.9rem; display: grid; place-items: center; border-radius: 999px; background: rgba(0, 213, 255, 0.14); color: var(--cyan); font-weight: 800; font-size: 0.95rem; }
.insc-plan strong { font-size: 1rem; }
.insc-plan span { color: var(--muted); font-size: 0.9rem; line-height: 1.4; }

/* « Vos documents à signer » */
.insc-docs { list-style: none; counter-reset: doc; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.insc-docs li { counter-increment: doc; position: relative; padding: 0.8rem 1rem 0.8rem 3.1rem; border: 1px solid var(--line); border-radius: 0.9rem; background: var(--panel); display: grid; gap: 0.1rem; }
.insc-docs li::before { content: counter(doc); position: absolute; left: 0.9rem; top: 50%; transform: translateY(-50%); width: 1.6rem; height: 1.6rem; display: grid; place-items: center; border-radius: 999px; background: rgba(0, 213, 255, 0.14); color: var(--cyan); font-weight: 800; font-size: 0.85rem; }
.insc-docs strong { font-size: 0.97rem; }
.insc-docs span { color: var(--muted); font-size: 0.86rem; }
.insc-docs__cert { display: flex; gap: 0.6rem; align-items: flex-start; margin: 0.75rem 0 0; padding: 0 0.2rem; color: var(--muted); font-size: 0.88rem; line-height: 1.45; }
.insc-docs__cert svg { flex: none; width: 1.1rem; height: 1.1rem; margin-top: 0.12rem; fill: none; stroke: var(--cyan); stroke-width: 2.2; stroke-linecap: round; }
.insc-docs__cert strong { color: #fff; }
.insc-docs__ask { margin: 1.6rem 0 0.9rem; font-size: 1.15rem; font-weight: 800; }

/* Signature : ce que vaut la signature */
.insc-pad__what { margin: -0.2rem 0 0.6rem; color: var(--muted); font-size: 0.86rem; }

/* ---------- Préparation du dossier ---------- */
.insc-prep { display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: 0.5rem; }
.insc-prep__ring { position: relative; width: 8.5rem; height: 8.5rem; margin-bottom: 1.25rem; }
.insc-prep__svg { position: relative; z-index: 1; width: 100%; height: 100%; transform: rotate(-90deg); }
.insc-prep__bg, .insc-prep__fg { fill: none; stroke-width: 8; }
.insc-prep__bg { stroke: rgba(255, 255, 255, 0.08); }
.insc-prep__fg { stroke: var(--cyan); stroke-linecap: round; filter: drop-shadow(0 0 6px rgba(0, 210, 255, 0.45)); }
.insc-prep__pct { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; font-size: 1.6rem; font-weight: 800; font-variant-numeric: tabular-nums; transition: opacity 0.25s, transform 0.25s; }
.insc-prep__check { position: absolute; z-index: 2; left: 22%; top: 22%; width: 56%; height: 56%; fill: none; stroke: #06181d; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 40; opacity: 0; }
.insc-prep__ring::before { content: ''; position: absolute; inset: 9px; border-radius: 999px; background: var(--cyan); transform: scale(0); transition: transform 0.45s cubic-bezier(0.2, 1.4, 0.4, 1); }
.insc-prep__ring::after { content: ''; position: absolute; inset: 0; border-radius: 999px; border: 2px solid var(--cyan); opacity: 0; }
.insc-step--prepare.is-ready .insc-prep__ring::before { transform: scale(1); }
.insc-step--prepare.is-ready .insc-prep__ring::after { animation: insc-burst 0.9s ease-out 0.2s; }
.insc-step--prepare.is-ready .insc-prep__pct { opacity: 0; transform: scale(0.6); }
.insc-step--prepare.is-ready .insc-prep__check { opacity: 1; animation: insc-draw 0.45s ease-out 0.3s forwards; }
@keyframes insc-draw { to { stroke-dashoffset: 0; } }
@keyframes insc-burst { 0% { opacity: 0.8; transform: scale(1); } 100% { opacity: 0; transform: scale(1.5); } }
.insc-prep__title { margin-bottom: 1rem; }
.insc-prep__sub { margin-top: -0.6rem; }
.insc-prep__tasks { list-style: none; width: 100%; max-width: 22rem; margin: 0.25rem 0 0; padding: 0; display: grid; gap: 0.55rem; text-align: left; }
.insc-prep__tasks li { display: flex; align-items: center; gap: 0.7rem; color: rgba(255, 255, 255, 0.38); font-size: 0.95rem; transition: color 0.3s; }
.insc-prep__dot { flex: none; position: relative; width: 1.3rem; height: 1.3rem; border-radius: 999px; border: 2px solid rgba(255, 255, 255, 0.18); transition: border-color 0.3s, background 0.3s; }
.insc-prep__tasks li.is-active { color: #fff; }
.insc-prep__tasks li.is-active .insc-prep__dot { border-color: var(--cyan); border-top-color: transparent; animation: insc-spin 0.7s linear infinite; }
.insc-prep__tasks li.is-done { color: var(--muted); }
.insc-prep__tasks li.is-done .insc-prep__dot { border-color: var(--cyan); background: var(--cyan); }
.insc-prep__tasks li.is-done .insc-prep__dot::after { content: ''; position: absolute; left: 0.32rem; top: 0.12rem; width: 0.3rem; height: 0.55rem; border: solid #06181d; border-width: 0 2px 2px 0; transform: rotate(45deg); }
@keyframes insc-spin { to { transform: rotate(360deg); } }
.insc-prep__go { margin-top: 1.5rem; max-width: 22rem; animation: insc-rise 0.4s ease-out both; }
@keyframes insc-rise { from { opacity: 0; transform: translateY(8px); } }
@media (prefers-reduced-motion: reduce) {
  .insc-prep__tasks li.is-active .insc-prep__dot { animation: none; }
  .insc-step--prepare.is-ready .insc-prep__check { animation: none; stroke-dashoffset: 0; }
  .insc-step--prepare.is-ready .insc-prep__ring::after, .insc-prep__go { animation: none; }
}

/* ---------- Écran final ---------- */
.insc-ready { margin-bottom: 1.25rem; }
.insc-ready__icon { display: inline-grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: 0.75rem; border-radius: 999px; background: var(--cyan); }
.insc-ready__icon svg { width: 1.6rem; height: 1.6rem; fill: none; stroke: #06181d; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.insc-kicker--ok { margin-top: 0; color: var(--cyan); }
.insc-file { padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.insc-file__head { display: flex; align-items: center; gap: 0.85rem; }
.insc-file__head > div { min-width: 0; display: grid; gap: 0.1rem; }
.insc-file__icon { position: relative; flex: none; width: 2.6rem; height: 3rem; color: var(--cyan); }
.insc-file__icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; }
.insc-file__icon b { position: absolute; left: 50%; bottom: 0.45rem; transform: translateX(-50%); padding: 0 0.2rem; border-radius: 0.2rem; background: var(--cyan); color: #06181d; font-size: 0.55rem; font-weight: 900; letter-spacing: 0.04em; }
.insc-file__name { font-size: 0.95rem; overflow-wrap: anywhere; }
.insc-file__meta { color: var(--muted); font-size: 0.85rem; }
.insc-file__label { margin: 1rem 0 0.5rem; color: var(--cyan); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.insc-file__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.insc-file__list li { display: flex; align-items: flex-start; gap: 0.65rem; }
.insc-file__list li > svg { flex: none; width: 1.35rem; height: 1.35rem; margin-top: 0.05rem; padding: 0.2rem; border-radius: 999px; fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.insc-file__list li.is-ok > svg { background: var(--cyan); stroke: #06181d; }
.insc-file__list li.is-sign > svg { background: rgba(255, 201, 60, 0.16); stroke: #ffc93c; stroke-width: 2.4; }
.insc-file__list li.is-todo > svg { background: rgba(255, 201, 60, 0.16); stroke: #ffc93c; }
.insc-file__list span { display: grid; gap: 0.05rem; }
.insc-file__list strong { font-size: 0.93rem; }
.insc-file__list small { color: var(--muted); font-size: 0.82rem; }
.insc-file__list li.is-todo small { color: #ffc93c; }
.insc-todo { margin: 1.75rem 0 1rem; font-size: 1.2rem; font-weight: 800; }
.insc-todo span { color: var(--muted); font-weight: 600; font-size: 0.95rem; }
.insc-todo { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.insc-todo span { flex: none; padding: 0.2rem 0.65rem; border-radius: 999px; background: rgba(255, 201, 60, 0.14); color: #ffc93c; font-size: 0.82rem; font-weight: 800; }
.insc-todo span:empty { display: none; }

/* Réactivité au toucher : pas de délai, effet « appuyé » immédiat */
.insc-choice, .insc-btn, .insc-q2__opt, .insc-link, .insc-path__link, .insc-sign__read { touch-action: manipulation; }
.insc-btn:active { transform: scale(0.97); }
@media (prefers-reduced-motion: reduce) { .insc-choice.is-pop .insc-choice__icon { animation: none; } }

/* Fenêtre en étapes avant le téléchargement */
.insc-warn__panel { position: relative; padding-top: 1.1rem; }
.insc-warn__close { position: absolute; top: 0.6rem; right: 0.6rem; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border: 0; border-radius: 999px; background: transparent; color: var(--muted); cursor: pointer; touch-action: manipulation; }
.insc-warn__close:hover { background: rgba(255, 255, 255, 0.06); color: #fff; }
.insc-warn__close svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.insc-warn__dots { display: flex; justify-content: center; gap: 0.4rem; margin: 0.3rem 0 1.1rem; }
.insc-warn__dots span { width: 0.5rem; height: 0.5rem; border-radius: 999px; background: rgba(255, 255, 255, 0.16); transition: width 0.25s, background-color 0.25s; }
.insc-warn__dots span.is-on { width: 1.5rem; background: var(--cyan); }
.insc-warn__dots span.is-done { background: rgba(0, 210, 255, 0.55); }
.insc-warn__slide.is-in { animation: insc-in-fwd 0.3s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
.insc-warn__icon { background: rgba(0, 210, 255, 0.12); color: var(--cyan); }
.insc-warn__step { margin: 0.7rem 0 0; color: var(--cyan); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.insc-warn__title { margin-top: 0.35rem; }
.insc-warn__text { color: var(--muted); font-size: 0.95rem; line-height: 1.5; }
.insc-warn__text p { margin: 0 0 0.6rem; }
.insc-warn__text b { color: #fff; }
.insc-warn__note { color: #ffc93c; font-size: 0.88rem; font-weight: 600; }
.insc-warn__list { list-style: none; margin: 0.2rem auto 0.4rem; padding: 0; display: inline-grid; gap: 0.45rem; text-align: left; }
.insc-warn__list li { position: relative; padding-left: 1.4rem; }
.insc-warn__list li::before { content: ''; position: absolute; left: 0.2rem; top: 0.5em; width: 0.5rem; height: 0.5rem; border-radius: 999px; background: var(--cyan); }
.insc-warn__text .insc-path__link { margin: 0.2rem auto 0; }
.insc-warn__actions .insc-btn svg { width: 1.1rem; height: 1.1rem; }
@media (prefers-reduced-motion: reduce) { .insc-warn__slide.is-in { animation: none; } }

/* Certificat médical pas encore complété : en rouge avec une croix */
.insc-file__list li.is-todo > svg { background: rgba(255, 77, 77, 0.16); stroke: #ff5c5c; }
.insc-file__list li.is-todo strong { color: #ff7a7a; }
.insc-file__list li.is-todo small { color: #ff7a7a; }
