/* Organigramme Interactif — moteur de rendu (apparence paramétrable depuis Réglages) */
.oi-diagram{
  /* valeurs par défaut : surchargées par le CSS généré depuis les réglages d'apparence */
  --oi-ink:#1a1a1a;
  --oi-paper:#ffffff;
  --oi-muted:#6b6b6b;
  --oi-accent:#1a1a1a;
  --oi-accent-contrast:#ffffff;
  --oi-radius:4px;
  --oi-border-width:1px;
  --oi-border-style:solid;
  --oi-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --oi-font-size:16px;

  box-sizing:border-box;
  max-width:100%;
  margin:1.5em 0;
  border:var(--oi-border-width) var(--oi-border-style) var(--oi-ink);
  border-radius:var(--oi-radius);
  padding:1.75em 1.5em 1.5em;
  background:var(--oi-paper);
  color:var(--oi-ink);
  font-family:var(--oi-font);
  font-size:var(--oi-font-size);
  line-height:1.5;
}
.oi-diagram *{ box-sizing:border-box; }

.oi-diagram.oi-texture{
  background-image:repeating-linear-gradient(0deg, rgba(0,0,0,0.025) 0px, rgba(0,0,0,0.025) 1px, transparent 1px, transparent 3px);
}

.oi-title{
  font-size:1em;
  font-weight:600;
  letter-spacing:.01em;
  margin:0 0 .3em;
}
.oi-cursor{ display:none; }
.oi-diagram.oi-terminal .oi-title{ text-transform:uppercase; letter-spacing:.1em; font-weight:normal; font-size:.85em; }
.oi-diagram.oi-terminal .oi-title::before{ content:"> "; }
.oi-diagram.oi-terminal .oi-cursor{ display:inline; animation: oi-blink 1.1s steps(1) infinite; }
@keyframes oi-blink{ 50%{ opacity:0; } }

.oi-subtitle{
  font-size:0.85em;
  color:var(--oi-muted);
  margin:0 0 1.3em;
  max-width:640px;
  line-height:1.55;
}

/* ================= Flow type: step-by-step wizard ================= */
.oi-crumbs{ display:flex; flex-wrap:wrap; gap:.4em; margin-bottom:1.2em; min-height:1.6em; align-items:center; }
.oi-crumb{
  font-family:inherit; font-size:.72em; letter-spacing:.01em;
  background:var(--oi-paper); border:1px solid var(--oi-ink); border-radius:calc(var(--oi-radius) * .6);
  color:var(--oi-ink);
  padding:.35em .65em; cursor:pointer; max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.oi-crumb:hover{ background:var(--oi-accent); border-color:var(--oi-accent); color:var(--oi-accent-contrast); }
.oi-crumb.is-current{ background:var(--oi-accent); border-color:var(--oi-accent); color:var(--oi-accent-contrast); cursor:default; }
.oi-crumb-sep{ color:var(--oi-muted); font-size:.75em; }

.oi-stage{ position:relative; overflow:hidden; }
.oi-screen{ width:100%; }
.oi-screen.oi-sliding{ position:absolute; top:0; left:0; transition:transform .32s ease; }
@media (prefers-reduced-motion: reduce){
  .oi-screen.oi-sliding{ transition:none; }
}

.oi-step-label{
  font-size:.85em; font-weight:600; letter-spacing:.01em;
  border-bottom:1px solid var(--oi-ink); padding-bottom:.65em; margin-bottom:1.1em;
  display:flex; align-items:flex-start; gap:.6em;
}
.oi-diagram.oi-terminal .oi-step-label{ text-transform:uppercase; letter-spacing:.06em; font-weight:normal; font-size:.78em; }
.oi-step-label .oi-n{
  display:inline-flex; align-items:center; justify-content:center;
  width:1.5em; height:1.5em; border:1px solid var(--oi-ink); border-radius:50%; font-size:.85em; flex:none;
  font-weight:normal;
}
.oi-step-note{ display:block; font-size:.85em; color:var(--oi-muted); font-weight:normal; text-transform:none; letter-spacing:normal; margin-top:.35em; line-height:1.45; }

.oi-options{ display:flex; flex-direction:column; gap:.7em; }
.oi-option{
  border:1px solid var(--oi-ink); border-radius:var(--oi-radius); padding:.85em .95em; background:var(--oi-paper);
  font-size:.95em; line-height:1.4; cursor:pointer; text-align:left; width:100%;
  font-family:inherit; color:var(--oi-ink); display:flex; justify-content:space-between; align-items:center; gap:.8em;
  transition:background .1s ease, color .1s ease, border-color .1s ease;
}
.oi-option:hover, .oi-option:focus-visible{ background:var(--oi-accent); border-color:var(--oi-accent); color:var(--oi-accent-contrast); outline:none; }
.oi-option .oi-arrow{ font-size:1em; flex:none; }

.oi-result{ display:flex; flex-direction:column; gap:.9em; }
.oi-result-block{ border:1px solid var(--oi-ink); border-radius:var(--oi-radius); padding:.95em 1.05em; }
.oi-result-block .oi-k{ font-size:.7em; text-transform:uppercase; color:var(--oi-muted); letter-spacing:.06em; margin-bottom:.45em; }
.oi-result-block .oi-price{ font-size:1.7em; font-weight:bold; }
.oi-result-block ul{ margin:.3em 0 0; padding-left:1.2em; font-size:.88em; }
.oi-result-block ul li{ margin-bottom:.35em; }

.oi-actions{ display:flex; gap:.6em; margin-top:1.3em; flex-wrap:wrap; }
.oi-btn{
  font-family:inherit; font-size:.78em; letter-spacing:.01em;
  background:var(--oi-paper); border:1px solid var(--oi-ink); border-radius:var(--oi-radius); color:var(--oi-ink); padding:.5em .85em; cursor:pointer;
}
.oi-diagram.oi-terminal .oi-btn{ text-transform:uppercase; letter-spacing:.06em; font-size:.72em; }
.oi-btn:hover{ background:var(--oi-accent); border-color:var(--oi-accent); color:var(--oi-accent-contrast); }

.oi-footnotes{
  margin-top:1.75em; padding-top:1em; border-top:1px solid var(--oi-ink);
  font-size:.75em; color:var(--oi-muted); line-height:1.6; columns:2; column-gap:2.2em;
}
.oi-footnotes strong{ color:var(--oi-ink); }
@media (max-width: 560px){ .oi-footnotes{ columns:1; } }

/* ================= Planning type: timeline grid ================= */
.oi-planning-scroll{ overflow-x:auto; }
.oi-grid{ display:grid; border-top:1px solid var(--oi-ink); min-width:560px; }
.oi-head-row{ display:grid; grid-template-columns:100px 1fr; }
.oi-head-row .oi-spacer{ border-bottom:1px solid var(--oi-ink); }
.oi-markers{ display:grid; border-bottom:1px solid var(--oi-ink); position:relative; height:1.9em; }
.oi-marker-label{ position:absolute; top:0; font-size:.75em; color:var(--oi-muted); transform:translateX(-50%); white-space:nowrap; }

.oi-day-row{ display:grid; grid-template-columns:100px 1fr; border-bottom:1px solid var(--oi-ink); }
.oi-day-label{ font-size:.8em; font-weight:600; padding:.7em .5em .7em 0; display:flex; align-items:flex-start; }
.oi-diagram.oi-terminal .oi-day-label{ text-transform:uppercase; letter-spacing:.06em; font-weight:normal; font-size:.75em; }
.oi-day-cells{ display:grid; position:relative; gap:.4em; padding:.6em 0; }
.oi-slot{
  border:1px solid var(--oi-ink); border-radius:var(--oi-radius); background:var(--oi-paper); font-size:.82em; line-height:1.35;
  padding:.55em .65em; display:flex; flex-direction:column; justify-content:center;
}
.oi-slot.is-emph{ background:var(--oi-accent); border-color:var(--oi-accent); color:var(--oi-accent-contrast); font-weight:600; }
.oi-slot .oi-sub{ display:block; color:var(--oi-muted); font-size:.85em; margin-top:.15em; font-weight:normal; }
.oi-slot.is-emph .oi-sub{ color:var(--oi-accent-contrast); opacity:.75; }

/* ================= misc ================= */
.oi-empty{ font-size:.85em; color:var(--oi-muted); font-style:italic; }
