.plc-simulation{margin:24px 0 36px;border:1px solid #dbe8f8;border-radius:8px;background:#fff}.plc-simulation summary{padding:17px;cursor:pointer;color:var(--accent);font-weight:700}.plc-simulation summary span{display:block;margin:6px 0 0 18px;color:var(--muted);font-size:.78rem;font-weight:400}.plc-panel{padding:0 18px 18px}.plc-scene.plc-live-scene{height:auto;min-height:130px;display:grid;align-items:center}.plc-live-scene svg{display:block;width:100%;height:auto;overflow:visible}.plc-live-scene text{font:10px ui-monospace,monospace;fill:#0069e7}.plc-finished-boxes{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:-8px 0 22px;font-size:.73rem;color:var(--muted)}.plc-finished-box{display:grid;place-items:center;width:29px;height:29px;border:1px dashed #b6cde8;color:#5f6b7e}.plc-finished-box.filled{border:1px solid var(--accent);background:#e8f2ff;color:var(--accent)}.plc-toolbar,.plc-controls,.plc-lamps{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.plc-toolbar{justify-content:space-between}.plc-simulation button,.plc-simulation select{font:inherit;font-size:.8rem;padding:9px 12px;color:var(--accent);background:#fff;border:1px solid #dbe8f8;border-radius:4px;cursor:pointer}.plc-simulation button:focus-visible,.plc-simulation select:focus-visible,.plc-simulation summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.plc-simulation button:disabled{opacity:.45;cursor:not-allowed}.plc-simulation [hidden]{display:none}.plc-simulation [data-action=start]{background:var(--accent);color:#fff}.plc-scene{position:relative;height:160px;margin:20px 0;overflow:hidden;background:#f5f9ff}.plc-belt{position:absolute;left:5%;right:25%;top:104px;height:18px;border:2px solid var(--accent);border-radius:12px;background:repeating-linear-gradient(90deg,transparent 0 14px,#dbe8f8 14px 18px)}.plc-product{position:absolute;top:78px;left:8%;width:24px;height:24px;border:2px solid var(--accent);background:#e8f2ff}.is-running .plc-product{animation:plc-travel 1s linear infinite}.plc-sensor{position:absolute;left:61%;top:24px;color:var(--accent);font:10px monospace}.plc-sensor span{display:block;margin:5px 0 0 12px;width:5px;height:65px;background:#dbe8f8}.sensor-hit .plc-sensor span{background:var(--accent)}.plc-box{position:absolute;right:3%;top:74px;width:20%;height:60px;border:2px solid var(--accent);border-top-style:dashed;display:grid;place-content:center;text-align:center;color:var(--accent)}.plc-box span{font:10px monospace}.plc-box strong{font:13px monospace}.plc-readouts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.plc-readouts span{display:block;font-size:.73rem;color:var(--muted)}.plc-readouts strong{display:block;margin-top:5px;font:600 clamp(1rem,3vw,1.4rem) monospace}.plc-lamps{margin:18px 0;font-size:.75rem;color:var(--accent)}.plc-status{min-height:2.8em;margin:16px 0 8px;font-size:.85rem}.plc-note{color:var(--muted);font-size:.73rem;line-height:1.6;margin:0}@keyframes plc-travel{0%{left:8%}to{left:67%}}.plc-conveyor .plc-belt{right:5%}.plc-conveyor .plc-entry{left:12%}.plc-conveyor .plc-exit{left:auto;right:8%}.plc-conveyor.sensor-hit .plc-exit span{background:#dbe8f8}.plc-conveyor.exit-hit .plc-exit span{background:var(--accent)}.plc-conveyor.is-running .plc-product{animation-name:plc-counter-travel}.plc-capacity{display:block;width:100%;height:8px;margin-top:18px;accent-color:var(--accent)}@keyframes plc-counter-travel{0%{left:8%}to{left:85%}}@media(prefers-reduced-motion:reduce){.is-running .plc-product{animation:none;left:61%}}@media(max-width:420px){.plc-panel{padding:0 12px 14px}.plc-readouts{gap:6px}.plc-toolbar{align-items:flex-start}}
