@layer modules{
/* ════════ Moteur de Mission - tableau de bord (CDC_MISSION.md, L4) ════════
   Vue plein écran #mission : lancement, liste, et suivi en direct des étapes
   (statut, contrat, verdict, tentatives) avec frontières d'irréversibilité. */

body.in-mission .col-profile,body.in-mission .col-report{ display:none; }
body.in-mission .split{ grid-template-columns:1fr; }
body.in-mission #grid{ max-width:none; }
.mz-wrap{ padding:18px 22px 60px; max-width:1100px; margin:0 auto; }
.mz-head{ display:flex; align-items:center; gap:var(--sp-14); flex-wrap:wrap; margin-bottom:var(--sp-18); }
.mz-title{ font-size:var(--fs-xl); margin:0; }
.mz-sub{ font-weight:var(--fw-regular); color:var(--muted); font-size:var(--fs-base); }
.mz-pick{ margin-left:auto; display:flex; align-items:center; gap:var(--sp-6); color:var(--muted); font-size:var(--fs-md); }
.mz-pick select{ font:inherit; }

/* Lancement */
.mz-new{ display:flex; gap:var(--sp-10); align-items:flex-start; margin-bottom:var(--sp-26); }
.mz-goal{ flex:1; font:inherit; padding:var(--sp-10) var(--sp-12); border-radius:var(--radius); border:1px solid var(--border);
  background:var(--card); color:var(--txt); resize:vertical; min-height:46px; }
.mz-h2{ font-size:var(--fs-base); color:var(--muted); margin:0 0 var(--sp-10); text-transform:uppercase; letter-spacing:.04em; }

/* Liste des missions */
.mz-list{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:var(--sp-12); }
.mz-item{ text-align:left; background:var(--card); border:1px solid var(--border); border-radius:var(--radius);
  padding:var(--sp-14); cursor:pointer; display:flex; flex-direction:column; gap:var(--sp-8); transition:.15s; color:inherit; font:inherit; }
.mz-item:hover{ border-color:var(--accent); transform:translateY(-1px); }
.mz-item-top{ display:flex; align-items:center; justify-content:space-between; }
.mz-badge{ color:var(--on-solid); border-radius:var(--radius-pill); padding:var(--sp-2) var(--sp-10); font-size:var(--fs-xs); font-weight:var(--fw-strong); text-transform:capitalize; }
.mz-prog{ color:var(--muted); font-size:var(--fs-md); }
.mz-goal-txt{ font-size:var(--fs-base); line-height:var(--lh-snug); }
.mz-goal-txt.big{ font-size:var(--fs-lg); font-weight:var(--fw-strong); }
.mz-bar{ height:5px; border-radius:var(--radius-xs); background:var(--border); overflow:hidden; }
.mz-bar i{ display:block; height:100%; transition:width .3s; }

/* Détail */
.mz-detail-head{ display:flex; align-items:center; gap:var(--sp-12); margin-bottom:var(--sp-14); flex-wrap:wrap; }
.mz-ctrl{ display:flex; align-items:center; gap:var(--sp-10); flex-wrap:wrap; margin-bottom:var(--sp-16); }
.mz-auto{ display:flex; align-items:center; gap:var(--sp-6); color:var(--muted); font-size:var(--fs-md); }
.mz-spin{ color:var(--accent); font-size:var(--fs-md); }
.mz-sign{ background:#fef3c7; color:#92400e; border:1px solid var(--warn); border-radius:var(--radius);
  padding:var(--sp-12) var(--sp-14); margin-bottom:var(--sp-16); display:flex; align-items:center; gap:var(--sp-12); flex-wrap:wrap; }
html[data-theme="dark"] .mz-sign{ background:#3a2c08; color:#fcd34d; }

.mz-stages{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--sp-10); }
.mz-stage{ background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:var(--sp-14) var(--sp-16);
  border-left:4px solid var(--border); }
.mz-stage.st-passed{ border-left-color:var(--ok); }
.mz-stage.st-running,.mz-stage.st-verifying{ border-left-color:var(--info); }
.mz-stage.st-blocked{ border-left-color:var(--err); }
.mz-stage.st-signing{ border-left-color:var(--warn); }
.mz-stage-h{ display:flex; align-items:center; gap:var(--sp-10); flex-wrap:wrap; }
.mz-dot{ width:10px; height:10px; border-radius:50%; flex:none; }
.mz-type{ font-size:var(--fs-xs); background:var(--border); border-radius:var(--radius-sm); padding:var(--sp-1) var(--sp-6); color:var(--muted); }
.mz-agent{ font-size:var(--fs-xs); background:color-mix(in srgb,var(--accent) 18%,transparent); color:var(--accent); border-radius:var(--radius-sm); padding:var(--sp-1) var(--sp-6); font-weight:var(--fw-strong); }
.mz-team{ background:color-mix(in srgb,var(--accent) 20%,transparent); color:var(--accent); }
.mz-rev{ font-size:var(--fs-xs); color:var(--muted); }
.mz-rev.irr{ color:var(--warn); font-weight:var(--fw-strong); }
.mz-stat{ font-size:var(--fs-md); font-weight:var(--fw-strong); margin-left:auto; }
.mz-try{ font-size:var(--fs-sm); color:var(--muted); }
.mz-deps{ font-size:var(--fs-sm); color:var(--muted); margin:var(--sp-6) 0 0 var(--sp-20); }
.mz-contract{ display:flex; flex-wrap:wrap; gap:var(--sp-6); margin:var(--sp-8) 0 0 var(--sp-20); }
.mz-crit{ font-size:var(--fs-sm); color:var(--muted); background:var(--bg); border-radius:var(--radius-sm); padding:var(--sp-2) var(--sp-8); }
.mz-verdict{ margin:var(--sp-10) 0 0 var(--sp-20); padding:var(--sp-8) var(--sp-12); border-radius:var(--radius); font-size:var(--fs-md); background:var(--bg); }
.mz-verdict.v-pass{ border-left:3px solid var(--ok); }
.mz-verdict.v-retry{ border-left:3px solid var(--warn); }
.mz-verdict.v-escalate{ border-left:3px solid var(--err); }
.mz-verdict ul{ margin:var(--sp-4) 0 0; padding-left:var(--sp-18); }
.mz-fix{ color:var(--warn); margin-top:var(--sp-4); }
.mz-ask{ color:var(--err); margin-top:var(--sp-4); font-weight:var(--fw-strong); }
.mz-arts{ font-size:var(--fs-sm); color:var(--muted); margin:var(--sp-8) 0 0 var(--sp-20); }
.mz-stage-act{ margin:var(--sp-10) 0 0 var(--sp-20); display:flex; align-items:center; gap:var(--sp-10); flex-wrap:wrap; }
.mz-hint{ font-size:var(--fs-sm); color:var(--muted); }

}
