.bela-mechanism{margin:6px 0;border:1px solid var(--rule-hair);background:var(--paper-warm);padding:7px}
.bela-mechanism svg{display:block;width:100%;height:auto;max-height:150px;color:var(--ink-2)}
.bela-mechanism text{font-family:Arial,sans-serif;fill:var(--ink-2);font-size:16px}
.bela-cell{fill:var(--paper);stroke:var(--ink-3);stroke-width:1.5}
.bela-label{font-weight:700}
.bela-route{fill:none;stroke:var(--ink-2);stroke-width:3}
.bela-block{fill:var(--tint);stroke:var(--guide-red-dark);stroke-width:2}
.bela-mechanism .bela-red{fill:var(--guide-red-dark);font-weight:700}
.bela-flow{fill:var(--guide-red-dark);offset-path:path('M 245 98 L 510 98');offset-distance:0%;animation:bela-signal 3s linear infinite;animation-play-state:paused}
.bela-mechanism .bela-narrow{display:none}
.bela-mechanism[data-running="true"][data-phase="open"] .bela-flow{animation-play-state:running}
.bela-mechanism[data-phase="blocked"] .bela-flow,.bela-mechanism[data-phase="blocked"] .bela-unblocked{visibility:hidden}
.bela-mechanism[data-phase="open"] .bela-occupied{visibility:hidden}
.bela-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:5px}
.bela-controls button{font:inherit;font-size:12px;border:1px solid var(--ink-3);border-radius:4px;background:var(--paper);color:var(--ink);padding:5px 10px;min-height:32px;cursor:pointer}
.bela-controls button:focus-visible{outline:3px solid var(--guide-red-dark);outline-offset:2px}
.bela-phase{font-size:12px;color:var(--ink-2)}
.bela-mechanism figcaption{font-size:7pt;line-height:1.3;margin-top:4px}
.bela-figure{display:grid;grid-template-columns:1.25fr 1fr;gap:12px;align-items:center;margin:7px 0}
.bela-figure img{display:block;width:100%;height:auto}
.bela-figure figcaption{font-size:7pt;line-height:1.3}
.bela-figure figcaption p{margin:4px 0}
.bela-figure a{color:var(--guide-red-dark)}
.bela-reading{font-size:7pt;line-height:1.3;margin:5px 0}
@keyframes bela-signal{to{offset-distance:100%}}
@media screen and (max-width:600px){
  .bela-mechanism svg{max-height:none}
  .bela-mechanism .bela-wide{display:none}
  .bela-mechanism .bela-narrow{display:block}
  .bela-mechanism text{font-size:15px}
  .bela-figure{display:block}
  .bela-figure figcaption,.bela-reading,.bela-mechanism figcaption{font-size:14px;line-height:1.45}
  .bela-controls button{min-height:44px;font-size:14px}
  .bela-phase{font-size:13px}
}
@media (prefers-reduced-motion:reduce){.bela-flow{animation:none!important}}
@media print{
  .bela-controls,.bela-full-size{display:none!important}
  .bela-mechanism{padding:4px}
  .bela-mechanism svg{max-height:106px}
  .bela-mechanism .bela-occupied{visibility:visible!important}
  .bela-mechanism .bela-flow,.bela-mechanism .bela-unblocked{visibility:hidden!important;animation:none!important}
  .bela-figure{grid-template-columns:1.2fr 1fr;gap:8px}
}
