.workflow-sim {background:var(--pale);border-bottom:1px solid var(--line)}
.simulation-intro {display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s3)}
.simulation-intro .mode-switch {background:var(--white)}
.sim-stage {border:1px solid var(--line);background:var(--white)}
.sim-stage__top {display:flex;justify-content:space-between;align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line)}
.sim-clock {display:flex;align-items:baseline;gap:var(--s2);font-size:var(--xs);color:var(--muted)}
.sim-clock output {font-size:var(--h3);min-width:6ch;text-align:right;color:var(--dark);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.sim-panels {display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);padding:var(--s2)}
.sim-panel {--panel-ink:#edf3ef;--panel-muted:#bdc8c1;--panel-rule:#506059;--panel-accent:#c5cfca;--panel-bg:#26332e;--panel-track:#415048;background:var(--panel-bg);color:var(--panel-ink);padding:var(--s4);min-width:0}
.sim-panel--infaio {--panel-bg:var(--dark);--panel-accent:var(--mint);--panel-muted:#c5ded3;--panel-rule:#4d7869;--panel-track:#315c4e}
.sim-panel>header {display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding-bottom:var(--s3);border-bottom:1px solid var(--panel-rule)}
.sim-panel__kind {font-size:var(--xs);color:var(--panel-muted)}
.sim-panel h3 {font-size:var(--h3);margin-top:var(--s1)}
.sim-route {font-size:var(--xs);color:var(--panel-accent);padding:4px var(--s1);border:1px solid var(--panel-rule);white-space:nowrap}
.sim-metrics {display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);padding:var(--s3) 0}
.sim-metrics>div {display:flex;flex-direction:column;gap:var(--s1)}
.sim-metrics span {font-size:var(--xs);color:var(--panel-muted)}
.sim-metrics output {font-size:clamp(1.6rem,2.7vw,2.4rem);letter-spacing:-.045em;line-height:1.1;font-variant-numeric:tabular-nums}
.sim-turn-heading {display:flex;justify-content:space-between;gap:var(--s2);font-size:var(--xs);color:var(--panel-muted);margin-top:var(--s2)}
.sim-turn-heading output {color:var(--panel-accent);font-variant-numeric:tabular-nums}
.sim-turn-grid {display:grid;grid-template-columns:repeat(19,1fr);gap:4px;margin:var(--s2) 0 var(--s3)}
.sim-turn-grid i {height:7px;background:var(--panel-track)}
.sim-turn-grid i.is-done {background:var(--panel-accent)}
.sim-turn-grid i.is-current {background:var(--panel-ink)}
.sim-current {display:flex;gap:12px;align-items:center;min-height:66px}
.sim-status-dot {width:8px;height:8px;background:var(--panel-muted);border-radius:50%;flex-shrink:0}
.sim-panel.is-complete .sim-status-dot {background:var(--panel-accent)}
.sim-current__label {display:block;color:var(--panel-muted);font-size:var(--xs)}
.sim-current strong {display:block;font-size:var(--lead);letter-spacing:-.02em;color:var(--panel-ink)}
.sim-phase-track {height:2px;background:var(--panel-track);margin:var(--s2) 0 var(--s3)}
.sim-phase-track>span {display:block;height:100%;width:0;background:var(--panel-accent)}
.sim-log-label {font-size:var(--xs);color:var(--panel-muted)}
.sim-activity ol {padding:0;margin:var(--s2) 0 0;list-style:none;min-height:92px}
.sim-activity li {font-size:var(--xs);color:var(--panel-muted);line-height:1.65;padding:4px 0;font-variant-numeric:tabular-nums}
.sim-activity li:last-child {color:var(--panel-ink)}
.sim-panel>footer {display:flex;justify-content:space-between;gap:var(--s2);border-top:1px solid var(--panel-rule);padding-top:var(--s2);margin-top:var(--s2);font-size:var(--xs);color:var(--panel-muted)}
.sim-panel>footer strong {color:var(--panel-accent);font-variant-numeric:tabular-nums}
.sim-controls {display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--s4)}
.sim-buttons {display:flex;align-items:center;gap:var(--s2)}
.sim-controls button {background:none;border:0;color:var(--green);padding:12px var(--s2);min-height:44px;font-size:var(--sm);cursor:pointer}
.sim-controls .sim-play {background:var(--green);color:white;min-width:180px;display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}
.sim-controls .sim-play:hover {background:var(--dark)}
.sim-controls button:hover:not(.sim-play) {background:var(--pale)}
.sim-speed {display:flex;align-items:center;gap:var(--s2);font-size:var(--xs);color:var(--muted)}
.sim-speed select {font:inherit;font-size:var(--sm);min-height:44px;padding:var(--s1) var(--s2);color:var(--green);border:1px solid var(--line);background:white}
.sim-timeline {padding:var(--s3) var(--s4) var(--s2)}
.sim-timeline label {font-size:var(--xs);color:var(--muted)}
.sim-timeline input {display:block;width:100%;height:32px;margin:var(--s1) 0 0;accent-color:var(--green);cursor:pointer}
.sim-timeline>div {display:flex;justify-content:space-between;font-size:var(--xs);font-variant-numeric:tabular-nums;color:var(--muted)}
.sim-summary {display:flex;justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-top:1px solid var(--line);margin-top:var(--s2)}
.sim-summary>p {font-size:var(--sm);color:var(--green);max-width:42ch}
.sim-summary>div {display:flex;gap:var(--s4);flex-shrink:0}
.sim-summary>div>span {font-size:var(--xs);color:var(--muted)}
.sim-summary strong {display:block;color:var(--green);font-size:var(--h3);line-height:1.2;font-variant-numeric:tabular-nums}
.sim-caption {display:flex;justify-content:space-between;gap:var(--s3);align-items:center;margin-top:var(--s2)}
.sim-caption p {font-size:var(--xs);max-width:70ch}
.sim-caption .text-link {white-space:nowrap}
@media(max-width:900px) {
  .sim-panel {padding:var(--s3)}
  .simulation-intro,.sim-caption {align-items:flex-start;flex-direction:column}
  .sim-stage__top {padding:var(--s3)}
  .sim-controls,.sim-timeline,.sim-summary {padding-inline:var(--s3)}
  .sim-summary {align-items:flex-start;flex-direction:column}
  .sim-controls {flex-wrap:wrap}
}
@media(max-width:620px) {
  .simulation-intro .mode-switch {width:100%}
  .simulation-intro .mode-switch button {flex:1}
  .sim-stage__top {flex-wrap:wrap}
  .sim-stage__top>.micro {font-size:var(--xs);letter-spacing:.05em}
  .sim-clock {justify-content:space-between;width:100%}
  .sim-panels {grid-template-columns:1fr}
  .sim-panel {padding:var(--s3)}
  .sim-metrics output {font-size:2rem}
  .sim-metrics span {min-height:38px}
  .sim-panel>header {gap:var(--s1)}
  .sim-controls {gap:var(--s2)}
  .sim-buttons {flex-wrap:wrap;gap:var(--s1);width:100%}
  .sim-controls .sim-play {width:100%}
  .sim-controls button:not(.sim-play) {padding-inline:0;margin-right:var(--s3)}
  .sim-timeline {padding-top:var(--s2)}
  .sim-activity ol {min-height:88px}
  .sim-summary>div {gap:var(--s3)}
}
