*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:#0f1117;
  --bg-card:#161920;
  --bg-card-hover:#1c1f28;
  --border:#2a2d35;
  --border-sub:#1e2128;
  --text:#e8e9eb;
  --text-muted:#888;
  --text-dim:#555;
  --green:#5dcaa5;
  --green-bg:#1a2e24;
  --green-border:#1d9e75;
  --amber:#ef9f27;
  --amber-bg:#2a2010;
  --red:#e24b4a;
  --red-bg:#2d1818;
  --blue:#5b8def;
  --blue-bg:#1c2340;
  --coral:#e08060;
  --coral-bg:#2d1f1a;
  --purple:#a07ad8;
  --purple-bg:#26202e;
  --radius:8px;
  --radius-lg:12px;
}

html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:15px;line-height:1.6;min-height:100vh}

a{color:var(--green);text-decoration:none}
a:hover{text-decoration:underline}

/* NAV */
nav{display:flex;justify-content:space-between;align-items:center;padding:20px 0;border-bottom:0.5px solid var(--border);margin-bottom:0}
.logo{font-size:15px;font-weight:600;letter-spacing:-0.3px;color:#fff}
.logo em{color:var(--green);font-style:normal}
.nav-link{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted)}
.nav-link:hover{color:var(--text);text-decoration:none}
.nav-link svg{width:16px;height:16px}

/* LAYOUT */
.container{max-width:860px;margin:0 auto;padding:0 24px 80px}

/* HERO */
.hero{padding:64px 0 48px}
.badge{display:inline-flex;align-items:center;gap:6px;background:var(--green-bg);border:0.5px solid var(--green-border);color:var(--green);font-size:12px;font-weight:500;padding:5px 12px;border-radius:20px;margin-bottom:24px}
.badge svg{width:13px;height:13px}
h1{font-size:38px;font-weight:600;line-height:1.15;letter-spacing:-0.8px;color:#fff;margin-bottom:16px}
h1 em{color:var(--green);font-style:normal}
.subtitle{font-size:16px;color:var(--text-muted);line-height:1.65;max-width:560px;margin-bottom:32px}
.hero-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;padding:10px 20px;border-radius:var(--radius);border:none;cursor:pointer;transition:opacity .15s}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-primary{background:var(--green-border);color:#fff}
.btn-primary:hover:not(:disabled){background:#25b887}
.btn-ghost{background:transparent;color:var(--text-muted);border:0.5px solid var(--border)}
.btn-ghost:hover:not(:disabled){color:var(--text);border-color:var(--text-dim)}
.btn svg{width:16px;height:16px;flex-shrink:0}

/* STATUS MSG */
.status-msg{font-size:13px;color:var(--text-muted);display:none}
.status-msg.visible{display:block}
.status-msg.error{color:var(--red)}

/* STATS */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:48px 0}
.stat{background:var(--bg-card);border:0.5px solid var(--border);border-radius:var(--radius-lg);padding:20px 20px 18px}
.stat-val{font-size:30px;font-weight:600;letter-spacing:-1px;color:#fff}
.stat-val.green{color:var(--green)}
.stat-val.amber{color:var(--amber)}
.stat-label{font-size:12px;color:var(--text-dim);margin-top:4px}

/* SECTION LABELS */
.section-label{font-size:11px;font-weight:600;letter-spacing:.9px;color:var(--text-dim);text-transform:uppercase;margin-bottom:16px}

/* AGENTS */
.agents{border:0.5px solid var(--border);border-radius:var(--radius-lg);overflow:visible;margin-bottom:48px}
.agent-card{display:flex;align-items:center;gap:16px;padding:14px 20px;border-bottom:0.5px solid var(--border-sub);background:var(--bg-card);transition:background .15s;overflow:visible}
.agent-card:first-of-type{border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.agent-card:last-of-type{border-bottom:none}
.agent-card.running{background:var(--bg-card-hover)}

.agent-info{flex:1;min-width:0}
.agent-name{font-size:13px;font-weight:500;color:var(--text)}
.agent-desc{font-size:12px;color:var(--text-dim);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agent-status{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}
.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.dot-wait{background:var(--border)}
.dot-running{background:var(--amber);animation:blink 1s ease-in-out infinite}
.dot-done{background:var(--green)}
.status-wait{color:var(--text-dim)}
.status-running{color:var(--amber)}
.status-done{color:var(--green)}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.35}}

/* TASK OUTPUT */
.task-output{display:none;margin:0 20px 14px;padding:10px 14px;background:#0d1014;border-radius:6px;border-left:2px solid var(--border-sub);font-size:12px;color:var(--text-muted);line-height:1.6;max-height:220px;overflow-y:auto}
.task-output.visible{display:block}
.task-output p{margin-bottom:8px}
.task-output p:last-child{margin-bottom:0}
.task-output strong{color:var(--text);font-weight:500}
.task-output ul,.task-output ol{padding-left:18px;margin-bottom:8px}
.task-output li{margin-bottom:3px}
.task-output h1,.task-output h2,.task-output h3{font-size:12px;font-weight:600;color:var(--text);margin:10px 0 6px}
.task-output h1:first-child,.task-output h2:first-child,.task-output h3:first-child{margin-top:0}
.task-output table{width:100%;border-collapse:collapse;font-size:11px;margin-bottom:8px}
.task-output th{text-align:left;color:var(--text-dim);font-weight:500;padding:4px 6px;border-bottom:0.5px solid var(--border)}
.task-output td{padding:5px 6px;border-bottom:0.5px solid var(--border-sub);vertical-align:top}
.task-output tr:last-child td{border-bottom:none}
.task-output code{font-family:monospace;font-size:10.5px;background:#000;color:var(--green);padding:1px 4px;border-radius:3px}

/* ─── BONHOMMES ANIMÉS ─── */

.char-wrap{
  width:48px;
  flex-shrink:0;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  height:68px;
  overflow:visible;
  position:relative;
}

.bonhomme{
  display:block;
  overflow:visible;
}

/* Parties SVG */
.b-head{fill:var(--ac,#5dcaa5)}
.b-body{fill:var(--ac,#5dcaa5);opacity:.82}
.b-limb{stroke:var(--ac,#5dcaa5);stroke-width:3.5;stroke-linecap:round;fill:none}
.b-pupil{fill:var(--ad,#085041)}
.b-mouth{fill:none;stroke:rgba(255,255,255,.75);stroke-width:1.6;stroke-linecap:round}

/* Pivots bras (coordonnées SVG absolues) */
.arm-l{transform-origin:16px 29px}
.arm-r{transform-origin:34px 29px}

/* ── État EN ATTENTE : balancement doux ── */
.bonhomme.state-wait{
  animation:char-sway 2.4s ease-in-out infinite;
  transform-origin:25px 70px;
}
@keyframes char-sway{
  0%,100%{transform:rotate(-5deg)}
  50%   {transform:rotate(5deg)}
}

/* ── État EN COURS : rebond + bras qui oscillent ── */
.bonhomme.state-running{
  animation:char-bounce .42s ease-in-out infinite alternate;
  transform-origin:25px 70px;
}
@keyframes char-bounce{
  0%  {transform:translateY(0) scaleY(1)}
  100%{transform:translateY(-6px) scaleY(1.04)}
}
.bonhomme.state-running .arm-l{
  animation:arm-l-run .42s ease-in-out infinite alternate;
}
.bonhomme.state-running .arm-r{
  animation:arm-r-run .42s ease-in-out infinite alternate;
}
@keyframes arm-l-run{
  0%  {transform:rotate(-32deg)}
  100%{transform:rotate(22deg)}
}
@keyframes arm-r-run{
  0%  {transform:rotate(32deg)}
  100%{transform:rotate(-22deg)}
}

/* ── État TERMINÉ : saut + bras levés ── */
.bonhomme.state-done{
  animation:char-celebrate .5s ease-in-out 5;
  transform-origin:25px 70px;
}
@keyframes char-celebrate{
  0%,100%{transform:translateY(0)}
  40%    {transform:translateY(-10px)}
}
.bonhomme.state-done .arm-l{
  transform:rotate(-138deg);
  transition:transform .4s cubic-bezier(.34,1.56,.64,1);
}
.bonhomme.state-done .arm-r{
  transform:rotate(138deg);
  transition:transform .4s cubic-bezier(.34,1.56,.64,1);
}

/* ─── FIN BONHOMMES ─── */

/* REPORT */
.report-section{display:none}
.report-section.visible{display:block}
.report-box{background:var(--bg-card);border:0.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.report-header{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:0.5px solid var(--border-sub)}
.report-header svg{width:16px;height:16px;color:var(--text-dim)}
.report-title{font-size:13px;font-weight:500;color:var(--text)}
.report-date{font-size:12px;color:var(--text-dim)}
.report-body{padding:24px;overflow-x:auto}

/* MARKDOWN STYLES */
.report-body h2{font-size:16px;font-weight:600;color:#fff;margin:20px 0 10px;letter-spacing:-.2px}
.report-body h2:first-child{margin-top:0}
.report-body h3{font-size:14px;font-weight:500;color:var(--text);margin:16px 0 8px}
.report-body p{font-size:13px;color:var(--text-muted);margin-bottom:10px}
.report-body ul,.report-body ol{font-size:13px;color:var(--text-muted);padding-left:20px;margin-bottom:10px}
.report-body li{margin-bottom:4px}
.report-body strong{color:var(--text);font-weight:500}
.report-body table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:16px}
.report-body th{text-align:left;color:var(--text-dim);font-weight:500;padding:6px 10px;border-bottom:0.5px solid var(--border)}
.report-body td{padding:8px 10px;border-bottom:0.5px solid var(--border-sub);color:var(--text-muted);vertical-align:top}
.report-body tr:last-child td{border-bottom:none}
.report-body code{font-family:monospace;font-size:11px;background:#0d1014;color:var(--green);padding:1px 5px;border-radius:3px}

/* FOOTER */
footer{border-top:0.5px solid var(--border);padding:24px 0;margin-top:0}
.footer-inner{display:flex;justify-content:space-between;align-items:center}
.footer-text{font-size:12px;color:var(--text-dim)}

/* RESPONSIVE */
@media(max-width:600px){
  h1{font-size:28px}
  .stats{grid-template-columns:1fr}
  .agent-desc{display:none}
  .char-wrap{width:40px;height:58px}
}
