#simulation{--sim-ink:#17372d;--sim-green:#167556;--sim-lime:#d2f35a;--sim-line:#dce5d8;--sim-muted:#65776d;color:var(--sim-ink);font-family:inherit}
#simulation *{box-sizing:border-box}
.sim-shell{border:1px solid #d2dfcf;border-radius:8px;background:#fff;overflow:hidden;box-shadow:0 8px 28px #17372d04}
.sim-topline{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:16px 25px;border-bottom:1px solid var(--sim-line);font-size:12px;line-height:1.6;font-weight:600;letter-spacing:.035em}
.sim-topline>span:first-child{display:flex;align-items:center;gap:8px}
.sim-live-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--sim-green);box-shadow:0 0 0 4px #1675560d}
.sim-top-note{color:var(--sim-muted);font-weight:400}
.sim-scenarios{padding:22px 25px 0;display:flex;gap:9px;flex-wrap:wrap}
.sim-scenarios button{font:inherit;font-size:13px;display:flex;gap:9px;align-items:center;border:1px solid var(--sim-line);border-radius:7px;background:white;color:var(--sim-ink);padding:10px 13px;min-height:44px;cursor:pointer;transition:background .2s,border-color .2s}
.sim-scenarios button .sim-scenario-number{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--sim-muted);font-size:10px}
.sim-scenarios button[aria-pressed=true]{background:#edf4e9;border-color:#acc7a5}
.sim-scenarios button:hover{border-color:var(--sim-green)}
.sim-diagram{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:35px 0 28px;margin:0 25px;background-image:radial-gradient(#89a57c30 .8px,transparent .8px);background-size:15px 15px}
.sim-wire{position:absolute;top:76px;left:16.667%;right:16.667%;height:1px;background:#9cb79a;z-index:-1}
.sim-wire:before,.sim-wire:after{content:'';position:absolute;right:24%;top:-3px;width:7px;height:7px;border-right:1px solid #9cb79a;border-top:1px solid #9cb79a;transform:rotate(45deg)}
.sim-wire:before{right:74%}
.sim-wire-label{position:absolute;top:52px;font-size:10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#597a61;transform:translateX(-50%);padding:0 4px;background:#fff}
.sim-wire-one{left:33.333%}.sim-wire-two{left:66.667%}
.sim-node{text-align:center;min-width:0;display:flex;flex-direction:column;align-items:center}
.sim-node-icon{background:#f6f8f2;width:82px;height:82px;border:1px solid #c5d5be;border-radius:8px;display:grid;place-items:center;margin-bottom:14px;box-shadow:0 0 0 8px #fff}
.sim-node-icon svg{width:57px;height:57px;fill:none;stroke:var(--sim-ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.sim-node strong{font-size:15px;font-weight:650;line-height:1.7}
.sim-node>span{font-size:12px;line-height:1.8;color:var(--sim-muted)}
.sim-node small{display:block;font-size:10px;line-height:1.6;padding:4px 9px;margin-top:8px;border-radius:4px;background:#f2f5ed;color:#58734e;white-space:normal;max-width:100%;font-variant-numeric:tabular-nums}
.sim-packet{position:absolute;width:9px;height:9px;border-radius:2px;top:72px;z-index:0;background:var(--sim-green);opacity:0}
.sim-awaiting .sim-packet-command{animation:sim-outbound .9s ease-in-out both}
.sim-tracking .sim-packet-feedback{animation:sim-inbound 1.8s ease-in-out infinite;background:#8ba930}
.sim-tracking .sim-battery-icon{border-color:#79a566;background:#f0f7e6}
.sim-tracking .sim-energy-line{animation:sim-glow 1.5s ease-in-out infinite}
.sim-stale .sim-node:nth-of-type(5) small{color:#956235}
@keyframes sim-outbound{0%{left:18%;opacity:0}15%{opacity:1}85%{opacity:1}100%{left:48%;opacity:0}}
@keyframes sim-inbound{0%{left:48%;opacity:0}15%{opacity:1}70%{opacity:1}80%,100%{left:18%;opacity:0}}
@keyframes sim-glow{50%{opacity:.2}}
.sim-stages{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--sim-line);border-bottom:1px solid var(--sim-line);padding:19px 25px;gap:12px;background:#fbfcf9}
.sim-stages>div{display:flex;align-items:flex-start;gap:9px;color:#819080;min-width:0}
.sim-stages b{flex:0 0 22px;height:22px;display:grid;place-items:center;border:1px solid #d1ddcb;border-radius:50%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:500}
.sim-stages span{font-size:12px;line-height:1.7;font-weight:600}
.sim-stages small{display:block;font-size:10px;font-weight:400;color:#84917f;line-height:1.5;margin-top:3px}
.sim-stages .is-complete{color:var(--sim-green)}
.sim-stages .is-complete b{background:var(--sim-green);color:white;border-color:var(--sim-green)}
.sim-stages .is-current b{box-shadow:0 0 0 4px #1675560b}
.sim-stages .is-rejected{color:#9b6339}.sim-stages .is-rejected b{border-color:#cca986;background:#fff5e9;color:#9b6339}
.sim-console{display:grid;grid-template-columns:1fr 1fr}
.sim-controls{padding:26px;border-right:1px solid var(--sim-line)}
.sim-control-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.sim-control-title label{font-size:13px;font-weight:600}
.sim-control-title output{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:26px;font-weight:600;white-space:nowrap;letter-spacing:-1px}
.sim-control-title output small{font-family:inherit;font-size:12px;font-weight:400;letter-spacing:0;color:var(--sim-muted)}
#sim-setpoint{-webkit-appearance:none;appearance:none;width:100%;height:44px;border-radius:4px;background:linear-gradient(90deg,#c8d8e0,#e3e9df 50%,#9bbda5) center / 100% 6px no-repeat;display:block;margin:0;cursor:pointer}
#sim-setpoint::-webkit-slider-thumb{-webkit-appearance:none;width:21px;height:21px;border-radius:50%;background:var(--sim-green);border:4px solid white;box-shadow:0 0 0 1px #93b294,0 3px 8px #17372d20}
#sim-setpoint::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:var(--sim-green);border:3px solid white;box-shadow:0 0 0 1px #93b294}
.sim-range-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--sim-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.sim-buttons{display:flex;gap:12px;margin-top:23px}
.sim-send,.sim-reset{font:inherit;cursor:pointer;font-size:12px;min-height:44px;border-radius:5px;font-weight:600}
.sim-send{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--sim-green);border:1px solid var(--sim-green);color:white;padding:10px 15px;flex:1;transition:background .2s}
.sim-send:hover{background:#115a42}
.sim-send:disabled{opacity:.6;cursor:wait}
.sim-send svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4}
.sim-reset{background:white;color:var(--sim-muted);border:1px solid var(--sim-line);padding:10px 14px}
.sim-reset:hover{border-color:var(--sim-green);color:var(--sim-green)}
.sim-switches{margin-top:23px;border-top:1px solid var(--sim-line);padding-top:7px}
.sim-switch-row{position:relative;display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;padding-top:16px;min-height:65px}
.sim-switch-row>span{font-size:12px;font-weight:600;line-height:1.6}
.sim-switch-row small{display:block;font-size:10px;color:var(--sim-muted);font-weight:400;margin-top:2px}
.sim-switch-row input{position:absolute;right:0;width:36px;height:22px;opacity:0;cursor:pointer;margin:0}
.sim-switch-row i{display:block;flex-shrink:0;width:36px;height:22px;border-radius:20px;background:#d6ded0;pointer-events:none;transition:background .2s}
.sim-switch-row i:before{content:'';display:block;width:16px;height:16px;border-radius:50%;background:white;margin:3px;box-shadow:0 1px 2px #17372d20;transition:transform .2s}
.sim-switch-row input:checked+i{background:var(--sim-green)}
.sim-switch-row input:checked+i:before{transform:translateX(14px)}
.sim-switch-row input:focus-visible+i{outline:3px solid #82a849;outline-offset:3px}
.sim-monitor{background:#f5f8f5;padding:26px;display:flex;flex-direction:column;min-width:0}
.sim-monitor-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:600;margin-bottom:25px}
.sim-quality{font-size:9px;background:#e5efdc;border:1px solid #d1e0c4;border-radius:4px;padding:3px 6px;color:#4d703a;white-space:nowrap}
.sim-quality[data-state=invalid]{background:#f8e9d8;border-color:#e4c9a8;color:#915a2b}
.sim-quality[data-state=paused]{background:#eeede0;border-color:#ddd9c4;color:#837c4b}
.sim-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sim-metrics>div>span{display:block;font-size:11px;color:var(--sim-muted);margin-bottom:8px}
.sim-metrics strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:31px;font-weight:500;white-space:nowrap;line-height:1.3;letter-spacing:-1.5px}
.sim-metrics small{font-size:11px;letter-spacing:0;color:var(--sim-muted);font-weight:400}
.sim-metrics>div:last-child strong{color:var(--sim-green)}
.sim-stale .sim-metrics strong{color:#9a876e}
.sim-bars{margin-top:25px;display:flex;flex-direction:column;gap:10px}
.sim-bar-row{display:flex;gap:10px;align-items:center}
.sim-bar-row>span{font-size:10px;color:var(--sim-muted);flex:0 0 52px}
.sim-bar-track{height:6px;background:#e4e9de;flex:1;position:relative;border-radius:3px}
.sim-bar-track:after{content:'';height:12px;position:absolute;left:50%;top:-3px;width:1px;background:#bdcbb4}
.sim-bar-track i{display:block;position:absolute;height:6px;background:#a3b77d;border-radius:2px;transition:width .2s linear,left .2s linear}
#sim-actual-bar{background:var(--sim-green)}
.sim-monitor-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:10px;line-height:1.5;margin-top:17px;color:#7c8a70;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.sim-monitor-note{font-size:11px;color:#5e7253;line-height:1.85;margin:19px 0 0;padding-top:16px;border-top:1px solid #dfe6d5}
.sim-model-note{font-size:10px;color:#8b6f48;line-height:1.8;margin:10px 0 0}
.sim-feedback{display:flex;gap:13px;padding:22px 26px;border-top:1px solid var(--sim-line);background:#f0f5f0;min-height:98px}
.sim-feedback-icon{display:grid;place-items:center;border-radius:50%;width:26px;height:26px;flex-shrink:0;font-size:16px;color:var(--sim-green);background:#e0ecd4;margin-top:1px}
.sim-feedback strong{font-size:13px;font-weight:650;line-height:1.8}
.sim-feedback p{margin:4px 0 0;font-size:12px;color:#637359;line-height:1.8;max-width:700px}
.sim-feedback[data-tone=warning]{background:#faf4e9}
.sim-feedback[data-tone=warning] strong{color:#805729}
.sim-feedback[data-tone=warning] p{color:#877357}
.sim-feedback[data-tone=warning] .sim-feedback-icon{background:#f0e2ca;color:#936327}
.sim-footnote{margin:0;padding:13px 26px;background:#fcfdfb;border-top:1px solid var(--sim-line);font-size:10px;line-height:1.9;color:#85917e}
#simulation button:focus-visible,#sim-setpoint:focus-visible{outline:3px solid #82a849;outline-offset:4px}
.sim-motion-off *{animation:none!important;transition:none!important}
.sim-motion-off .sim-packet{display:none}
@media(prefers-reduced-motion:reduce){#simulation *{animation:none!important;transition:none!important}}
@media(max-width:700px){.sim-top-note{display:none}.sim-topline{padding:14px 18px}.sim-scenarios{padding:18px 18px 0;gap:7px}.sim-scenarios button{padding:8px 10px;font-size:12px;gap:7px}.sim-diagram{margin:0 18px;padding-top:31px}.sim-node-icon{width:65px;height:72px;border-radius:13px}.sim-node-icon svg{width:49px;height:49px}.sim-wire{top:67px}.sim-wire-label{top:46px;font-size:9px}.sim-packet{top:63px}.sim-node strong{font-size:13px}.sim-node>span{font-size:10px}.sim-node small{font-size:9px;padding:4px 5px}.sim-stages{padding:17px 18px;gap:8px}.sim-stages>div{gap:7px}.sim-stages b{flex-basis:18px;height:18px;font-size:9px}.sim-stages span{font-size:11px}.sim-stages small{font-size:9px}.sim-controls,.sim-monitor{padding:22px}.sim-feedback{padding:20px 22px}.sim-footnote{padding:13px 22px}.sim-metrics strong{font-size:27px}}
@media(max-width:530px){.sim-console{grid-template-columns:1fr}.sim-controls{border-right:0;border-bottom:1px solid var(--sim-line)}.sim-control-title{margin-bottom:19px}.sim-switches{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sim-switch-row{display:grid;grid-template-columns:1fr auto;align-items:start;gap:7px}.sim-switch-row>span{font-size:11px}.sim-switch-row small{font-size:9px;line-height:1.7;max-width:125px;margin-top:5px}.sim-switch-row input{top:16px}.sim-switch-row i{width:31px;height:19px;margin-top:1px}.sim-switch-row i:before{width:13px;height:13px}.sim-switch-row input:checked+i:before{transform:translateX(12px)}.sim-monitor-heading{margin-bottom:19px}.sim-metrics strong{font-size:33px}.sim-monitor-note{margin-top:15px;padding-top:13px}.sim-diagram{margin:0 13px}.sim-node>span{font-size:9px}.sim-node small{font-size:8px;padding:4px}.sim-node-icon{width:58px;height:67px}.sim-wire{top:64px}.sim-packet{top:60px}.sim-wire-label{top:42px;font-size:8px}.sim-stages{padding:16px 14px;gap:7px}.sim-stages>div{gap:5px}.sim-stages small{font-size:8px;line-height:1.7;max-width:88px}.sim-stages span{font-size:10px}.sim-scenarios{padding:17px 14px 0;gap:6px}.sim-scenarios button{font-size:11px;padding:8px 9px;gap:6px}.sim-scenarios button .sim-scenario-number{font-size:9px}.sim-feedback strong{font-size:12px}.sim-feedback p{font-size:11px}.sim-footnote{font-size:9px}}

/* English labels use the same controls and state, with room to wrap. */
.sim-scenarios button>span:not(.sim-scenario-number){font:inherit;color:inherit;line-height:1.35;text-align:left}
.sim-node>strong,.sim-node>span{max-width:100%;padding-inline:5px}
.sim-node>span{min-height:2em}
.sim-node small{min-height:2.4em}
.sim-stages>div>div{min-width:0}
.sim-control-title label{line-height:1.5}
.sim-monitor-heading>span:first-child{line-height:1.6}
.sim-switch-row>span{padding-right:3px}
.sim-feedback>div{min-width:0}
html[lang="en"] .sim-node>span{font-size:11px;line-height:1.55;min-height:3.1em}
html[lang="en"] .sim-node small{font-size:10px;line-height:1.5;min-height:3.4em;display:flex;align-items:center;justify-content:center;max-width:155px}
html[lang="en"] .sim-stages small{line-height:1.6}
html[lang="en"] .sim-metrics>div>span{line-height:1.5;min-height:3em}
html[lang="en"] .sim-monitor-heading{align-items:flex-start}
@media(max-width:760px){.sim-console{grid-template-columns:1fr}.sim-controls{border-right:0;border-bottom:1px solid var(--sim-line)}.sim-monitor-heading{margin-bottom:19px}.sim-metrics{gap:24px}.sim-monitor-note{margin-top:18px;padding-top:15px}}
@media(max-width:530px){.sim-switches{grid-template-columns:1fr;gap:0}.sim-switch-row{display:flex;align-items:center;min-height:64px;gap:16px;padding-top:12px}.sim-switch-row>span{font-size:12px}.sim-switch-row small{font-size:10px;max-width:none;margin-top:3px}.sim-switch-row i{width:36px;height:22px;margin:0}.sim-switch-row i:before{width:16px;height:16px}.sim-switch-row input:checked+i:before{transform:translateX(14px)}.sim-switch-row input{top:auto;width:44px;height:44px}.sim-scenarios button{min-height:44px}.sim-node-icon{border-radius:7px}.sim-node>span{padding-inline:2px}html[lang="en"] .sim-node>strong{font-size:11px;line-height:1.4;min-height:2.8em;display:flex;align-items:center}html[lang="en"] .sim-node>span{font-size:9px;line-height:1.5;min-height:4.5em}html[lang="en"] .sim-node small{font-size:9px;max-width:95px;min-height:4.3em}.sim-stages{grid-template-columns:1fr;gap:13px;padding:18px 20px}.sim-stages>div{gap:10px;align-items:center}.sim-stages>div>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex:1}.sim-stages span{font-size:11px}.sim-stages small{font-size:9px;line-height:1.6;max-width:145px;margin:0;text-align:right}.sim-stages b{flex-basis:22px;height:22px;font-size:10px}.sim-metrics strong{font-size:30px}html[lang="en"] .sim-metrics>div>span{min-height:3em}.sim-feedback{padding:20px}.sim-footnote{padding:14px 20px;line-height:1.8}.sim-range-labels{font-size:10px}}
@media(max-width:370px){.sim-scenarios{gap:7px}.sim-scenarios button{padding:8px;font-size:10px;gap:5px}.sim-node small{font-size:8px}html[lang="en"] .sim-node small{font-size:8px}.sim-stages>div>div{gap:8px}.sim-stages small{max-width:130px}}
