/* ── Cycle Loop Widget ─────────────────────────────────────────── */
.afc-cl-wrap{position:relative;box-sizing:border-box;
  --cl-ring:#D9E6EC;--cl-flow:#FFC43D;--cl-arrow:#E8A91E;--cl-center:#9FB0BD;
  --cl-nbg:#FFFFFF;--cl-nbr:#D9E6EC;--cl-num:#E8A91E;--cl-lbl:#2B3D52;
  --cl-nbg-act:#3A506B;--cl-num-act:#FFC43D;--cl-lbl-act:#FFFFFF}
.afc-cl-wrap *{box-sizing:border-box}

/* SVG stage */
.afc-cl-svgwrap{width:100%;max-width:430px;margin:0 auto;position:relative}
.afc-cl-svg{width:100%;height:auto;display:block;overflow:visible}

/* Ring + flow + arrows */
.afc-cl-ring{fill:none;stroke:var(--cl-ring);stroke-width:2}
.afc-cl-flow{fill:none;stroke:var(--cl-flow);stroke-width:2.5;stroke-dasharray:10 9;animation:afcClFlow 14s linear infinite;opacity:.85}
@keyframes afcClFlow{to{stroke-dashoffset:-380}}
@media(prefers-reduced-motion:reduce){.afc-cl-flow{animation:none}}
.afc-cl-arrow{fill:var(--cl-arrow)}

/* Center label */
.afc-cl-center{fill:var(--cl-center);font-family:inherit;font-weight:700;letter-spacing:.14em}

/* Nodes */
.afc-cl-node{cursor:pointer}
.afc-cl-nbg{fill:var(--cl-nbg);stroke:var(--cl-nbr);stroke-width:2;transition:fill .25s ease,stroke .25s ease}
.afc-cl-node:hover .afc-cl-nbg{stroke:var(--cl-arrow)}
.afc-cl-node.is-active .afc-cl-nbg{fill:var(--cl-nbg-act);stroke:var(--cl-nbg-act)}
.afc-cl-nnum{fill:var(--cl-num);font-family:inherit;font-weight:700;font-size:11px;pointer-events:none;user-select:none;transition:fill .25s ease}
.afc-cl-node.is-active .afc-cl-nnum{fill:var(--cl-num-act)}
.afc-cl-nlbl{fill:var(--cl-lbl);font-family:inherit;font-weight:700;font-size:10.5px;pointer-events:none;user-select:none;transition:fill .25s ease}
.afc-cl-node.is-active .afc-cl-nlbl{fill:var(--cl-lbl-act)}
.afc-cl-node:focus{outline:none}
.afc-cl-node:focus-visible .afc-cl-nbg{stroke:var(--cl-flow);stroke-width:3}

/* Detail box */
.afc-cl-detail{margin:26px auto 0;max-width:430px;background:#F4FAFC;border:1px solid #D9E6EC;border-left:4px solid #FFC43D;border-radius:12px;padding:18px 22px;min-height:88px}
.afc-cl-d{display:none}
.afc-cl-d.is-on{display:block;animation:afcClIn .3s ease}
@keyframes afcClIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.afc-cl-d.is-on{animation:none}}
.afc-cl-dt{font-family:inherit;font-weight:700;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;margin:0 0 6px}
.afc-cl-dx{font-size:.95rem;margin:0;line-height:1.55}
