/* ═══════════════════════════════════════════════════════════════════
   Assistant de demande de diplôme — METFP
   Design system (tokens du Sprint 0). Aucune dépendance Tailwind.
   ═══════════════════════════════════════════════════════════════════ */

.dd-hero{background:linear-gradient(135deg,var(--color-navy) 0%,var(--color-primary) 100%);padding:var(--space-12) var(--space-4) var(--space-16);text-align:center;color:var(--color-white);}
.dd-hero__badge{display:inline-flex;align-items:center;gap:var(--space-2);background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:.05em;text-transform:uppercase;margin-bottom:var(--space-4);}
.dd-hero__title{font-size:clamp(var(--font-size-2xl),5vw,var(--font-size-4xl));font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin-bottom:var(--space-3);color:var(--color-gold) ;}
.dd-hero__subtitle{font-size:var(--font-size-lg);opacity:.85;max-width:560px;margin:0 auto;line-height:var(--line-height-relaxed);}

.dd-wrap{max-width:var(--container-max);margin:calc(-1*var(--space-10)) auto 0;padding:0 var(--space-4) var(--space-20);position:relative;z-index:2;}
.dd-card{background:var(--color-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;}

/* ── Stepper ──────────────────────────────────────────────────────── */
.dd-stepper{display:flex;align-items:flex-start;gap:0;padding:var(--space-6) var(--space-5);background:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200);overflow-x:auto;}
.dd-stepper__item{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);flex:1;min-width:84px;position:relative;text-align:center;}
.dd-stepper__item:not(:last-child)::after{content:"";position:absolute;top:18px;left:calc(50% + 20px);right:calc(-50% + 20px);height:2px;background:var(--color-neutral-200);transition:background var(--transition-base);}
.dd-stepper__item.is-done::after{background:var(--color-primary-500);}
.dd-stepper__num{width:36px;height:36px;border-radius:var(--radius-full);background:var(--color-white);border:2px solid var(--color-neutral-300);color:var(--color-neutral-500);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);transition:all var(--transition-base);z-index:1;}
.dd-stepper__lbl{font-size:var(--font-size-xs);color:var(--color-neutral-500);font-weight:var(--font-weight-medium);line-height:1.3;}
.dd-stepper__item.is-active .dd-stepper__num{background:var(--color-primary-600);border-color:var(--color-primary-600);color:#fff;box-shadow:0 0 0 4px rgba(0,122,61,.12);}
.dd-stepper__item.is-active .dd-stepper__lbl{color:var(--color-primary-700,#0a5c30);font-weight:var(--font-weight-semibold);}
.dd-stepper__item.is-done .dd-stepper__num{background:var(--color-primary-500);border-color:var(--color-primary-500);color:#fff;}

/* ── Panneaux d'étape ─────────────────────────────────────────────── */
.dd-body{padding:var(--space-8);}
.dd-step{display:none;animation:dd-fade .35s ease-out;}
.dd-step.is-active{display:block;}
@keyframes dd-fade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.dd-step__head{margin-bottom:var(--space-6);}
.dd-step__head h2{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-neutral-900);margin-bottom:var(--space-2);}
.dd-step__head h2 .dd-ico{width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-primary-100);color:var(--color-primary-600);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.dd-step__head p{font-size:var(--font-size-sm);color:var(--color-neutral-600);}

.dd-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);}
.dd-grid--full>*{grid-column:1/-1;}
.dd-col-2{grid-column:1/-1;}

/* ── Skeleton ─────────────────────────────────────────────────────── */
.dd-skel-wrap{padding:var(--space-6) 0;}
.dd-skel{height:14px;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--color-neutral-200) 25%,var(--color-neutral-100) 50%,var(--color-neutral-200) 75%);background-size:200% 100%;animation:dd-shimmer 1.4s infinite;margin-bottom:var(--space-3);}
@keyframes dd-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.dd-skel-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);}

/* ── Bannières d'état ─────────────────────────────────────────────── */
.dd-alert{display:flex;gap:var(--space-4);align-items:flex-start;padding:var(--space-5);border-radius:var(--radius-lg);margin-bottom:var(--space-5);animation:dd-fade .3s ease-out;}
.dd-alert__ico{width:42px;height:42px;flex-shrink:0;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:#fff;}
.dd-alert__title{font-weight:var(--font-weight-semibold);color:var(--color-neutral-900);margin-bottom:2px;}
.dd-alert__desc{font-size:var(--font-size-sm);color:var(--color-neutral-700);line-height:var(--line-height-relaxed);}
.dd-alert--success{background:var(--color-primary-50);border:1px solid var(--color-primary-200,#b7e0c6);}
.dd-alert--success .dd-alert__ico{background:var(--color-primary-600);}
.dd-alert--warning{background:var(--color-warning-light);border:1px solid rgba(230,126,34,.25);}
.dd-alert--warning .dd-alert__ico{background:var(--color-warning);}
.dd-alert--danger{background:var(--color-danger-light);border:1px solid rgba(192,57,43,.25);}
.dd-alert--danger .dd-alert__ico{background:var(--color-danger);}
.dd-alert--info{background:var(--color-info-light);border:1px solid rgba(41,128,185,.25);}
.dd-alert--info .dd-alert__ico{background:var(--color-info);}
.dd-alert__actions{margin-top:var(--space-3);display:flex;gap:var(--space-2);flex-wrap:wrap;}

/* ── Données officielles (lecture seule) ──────────────────────────── */
.dd-readonly{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4) var(--space-5);background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:var(--space-5);}
.dd-ro__lbl{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-neutral-400);font-weight:var(--font-weight-medium);margin-bottom:2px;}
.dd-ro__val{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-neutral-900);word-break:break-word;}
.dd-ro--full{grid-column:1/-1;}
.dd-lock-note{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-neutral-500);margin-top:var(--space-3);}
.dd-lock-note i{color:var(--color-primary-600);}

/* ── Mode de livraison ────────────────────────────────────────────── */
.dd-radio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);}
.dd-radio-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-3);border:2px solid var(--color-neutral-200);border-radius:var(--radius-lg);cursor:pointer;text-align:center;transition:all var(--transition-fast);}
.dd-radio-card:hover{border-color:var(--color-primary-500);background:var(--color-primary-50);}
.dd-radio-card input{position:absolute;opacity:0;pointer-events:none;}
.dd-radio-card__ico{width:44px;height:44px;border-radius:var(--radius-full);background:var(--color-primary-100);color:var(--color-primary-600);display:flex;align-items:center;justify-content:center;font-size:1.2rem;transition:all var(--transition-fast);}
.dd-radio-card strong{font-size:var(--font-size-sm);color:var(--color-neutral-900);}
.dd-radio-card span{font-size:var(--font-size-xs);color:var(--color-neutral-500);}
.dd-radio-card.is-active{border-color:var(--color-primary-600);background:var(--color-primary-50);box-shadow:0 0 0 4px rgba(0,122,61,.1);}
.dd-radio-card.is-active .dd-radio-card__ico{background:var(--color-primary-600);color:#fff;}

/* ── Téléversement ────────────────────────────────────────────────── */
.dd-uploads{display:grid;gap:var(--space-4);}
.dd-upload{border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:var(--space-4);}
.dd-upload__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3);}
.dd-upload__name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-neutral-900);display:flex;align-items:center;gap:var(--space-2);}
.dd-upload__req{font-size:.6rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;padding:2px 8px;border-radius:var(--radius-full);}
.dd-upload__req--yes{background:var(--color-danger-light);color:var(--color-danger);}
.dd-upload__req--no{background:var(--color-neutral-100);color:var(--color-neutral-500);}
.dd-drop{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border:2px dashed var(--color-neutral-300);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:var(--color-neutral-50);}
.dd-drop:hover,.dd-drop.is-drag{border-color:var(--color-primary-500);background:var(--color-primary-50);}
.dd-drop__ico{font-size:1.5rem;color:var(--color-primary-600);flex-shrink:0;}
.dd-drop__txt{font-size:var(--font-size-sm);color:var(--color-neutral-600);}
.dd-drop__txt small{display:block;font-size:var(--font-size-xs);color:var(--color-neutral-400);}
.dd-file{display:none;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-primary-50);border:1px solid var(--color-primary-200,#b7e0c6);margin-top:var(--space-3);}
.dd-file.is-shown{display:flex;}
.dd-file__thumb{width:44px;height:44px;border-radius:var(--radius-sm);object-fit:cover;background:var(--color-neutral-100);display:flex;align-items:center;justify-content:center;color:var(--color-primary-600);font-size:1.2rem;flex-shrink:0;}
.dd-file__thumb img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-sm);}
.dd-file__meta{flex:1;min-width:0;}
.dd-file__name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-neutral-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dd-file__size{font-size:var(--font-size-xs);color:var(--color-neutral-500);}
.dd-file__state{font-size:var(--font-size-xs);color:var(--color-primary-600);font-weight:var(--font-weight-medium);}
.dd-file__rm{background:none;border:none;color:var(--color-danger);cursor:pointer;font-size:1rem;flex-shrink:0;padding:var(--space-1);}

/* ── Récapitulatif ────────────────────────────────────────────────── */
.dd-recap{display:grid;gap:var(--space-4);}
.dd-recap__block{border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);overflow:hidden;}
.dd-recap__hd{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-neutral-800);}
.dd-recap__hd i{color:var(--color-primary-600);}
.dd-recap__body{padding:var(--space-4);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-4);}
.dd-recap__body .dd-ro--full{grid-column:1/-1;}
.dd-consent{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);}
.dd-consent input{margin-top:3px;width:18px;height:18px;flex-shrink:0;accent-color:var(--color-primary-600);}
.dd-consent label{font-size:var(--font-size-sm);color:var(--color-neutral-700);line-height:var(--line-height-relaxed);}

/* ── Navigation ───────────────────────────────────────────────────── */
.dd-nav{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-8);flex-wrap:wrap;}
.dd-nav__right{display:flex;gap:var(--space-3);margin-left:auto;}

/* ── Écran final ──────────────────────────────────────────────────── */
.dd-done{text-align:center;padding:var(--space-10) var(--space-6);}
.dd-done__ico{width:88px;height:88px;border-radius:var(--radius-full);background:var(--color-primary-50);color:var(--color-primary-600);display:flex;align-items:center;justify-content:center;font-size:2.5rem;margin:0 auto var(--space-5);animation:dd-pop .5s cubic-bezier(.34,1.56,.64,1) both;}
@keyframes dd-pop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
.dd-done h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-neutral-900);margin-bottom:var(--space-2);}
.dd-done p{font-size:var(--font-size-base);color:var(--color-neutral-600);max-width:460px;margin:0 auto var(--space-5);}
.dd-done__dossier{display:inline-flex;flex-direction:column;gap:2px;padding:var(--space-4) var(--space-6);border-radius:var(--radius-lg);background:var(--color-primary-50);border:1px solid var(--color-primary-200,#b7e0c6);margin-bottom:var(--space-6);}
.dd-done__dossier strong{font-size:var(--font-size-2xl);color:var(--color-primary-700,#0a5c30);}
.dd-done__dossier span{font-size:var(--font-size-xs);color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:.05em;}

.dd-hidden{display:none!important;}
.is-shaking{animation:dd-shake .45s ease-out;}
@keyframes dd-shake{0%,100%{transform:translateX(0)}15%,45%,75%{transform:translateX(-6px)}30%,60%,90%{transform:translateX(6px)}}

/* ── Responsive ───────────────────────────────────────────────────── */
@media(max-width:680px){
  .dd-body{padding:var(--space-5);}
  .dd-grid,.dd-skel-grid,.dd-recap__body{grid-template-columns:1fr;}
  .dd-readonly{grid-template-columns:1fr 1fr;}
  .dd-radio-grid{grid-template-columns:1fr;}
  .dd-stepper__lbl{display:none;}
  .dd-stepper__item{min-width:48px;}
  .dd-stepper__item:not(:last-child)::after{left:calc(50% + 18px);right:calc(-50% + 18px);}
  .dd-nav{flex-direction:column-reverse;}
  .dd-nav__right{margin-left:0;flex-direction:column;}
  .dd-nav .btn{width:100%;justify-content:center;}
}
@media(max-width:400px){ .dd-readonly{grid-template-columns:1fr;} }
@media (prefers-reduced-motion: reduce){
  .dd-step,.dd-alert,.dd-done__ico{animation:none!important;}
}
