/* A light, instrument-like workspace; scoped to the new lab. */
.sim-shell{width:min(1460px,calc(100% - 64px));margin:52px auto 90px;color:var(--text,#25252c)}
.sim-intro{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:30px}
.sim-intro .eyebrow{font-size:12px;color:var(--purple);letter-spacing:.14em;margin:0 0 12px}
.sim-intro h1{font:500 clamp(38px,4.1vw,64px)/1.04 Archivo,sans-serif;letter-spacing:-.06em;margin:0}
.sim-intro h1 span{color:var(--purple)}
.sim-intro>p{font-size:16px;line-height:1.6;margin:0 0 3px;color:#655f72}
.sim-app{border:1px solid #d8d3e0;border-radius:22px;background:#fffefa;box-shadow:0 20px 70px #5545790b;overflow:hidden}
.sim-shell [hidden]{display:none!important}
.sim-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:#f0eef4;border-bottom:1px solid #d8d3e0}
.sim-tabs button{display:flex;align-items:center;text-align:left;gap:12px;min-height:91px;padding:17px 18px;border:0;border-right:1px solid #d8d3e0;border-radius:0;background:transparent;color:#676071;position:relative;transition:background .2s,color .2s}
.sim-tabs button:last-child{border-right:0}
.sim-tabs button:hover{background:#e8e5f2}
.sim-tabs button[aria-selected=true]{background:#fffefa;color:#302c3b}
.sim-tabs button[aria-selected=true]::after{content:'';position:absolute;inset:auto 16px 0;height:3px;background:var(--purple);border-radius:3px}
.sim-tab-index{font:400 24px/1 Archivo,sans-serif;color:#8c7ba4;letter-spacing:-.05em}
.sim-tabs strong{font-size:15px;line-height:1.2;font-weight:600;display:block}
.sim-tabs small{font-size:12px;letter-spacing:.035em;display:block;margin-top:6px;color:#72657f}
.sim-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 22px;border-bottom:1px solid #e6e1ea}
.sim-toolbar>div,.sim-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.sim-toolbar strong{font-size:15px}
.sim-live-dot{width:8px;height:8px;border-radius:50%;background:#476acd;box-shadow:0 0 0 5px #e8ecfa}
#sim-status{font-size:12px;color:#5e5970;border-left:1px solid #d2cada;padding-left:12px}
#sim-status.warning{color:#ac344e}
.sim-shell button{cursor:pointer;font-family:inherit}
.sim-shell button:disabled{cursor:default;opacity:.45}
.sim-shell button:focus-visible,.sim-shell select:focus-visible,.sim-shell input:focus-visible,.sim-viewport:focus-visible,.sim-sources summary:focus-visible{outline:3px solid #375bcc;outline-offset:3px}
.sim-shell #sim-panel:focus-visible{outline:3px solid #375bcc;outline-offset:-4px}
.sim-tools>button,.sim-stage-toolbar button,.sim-sequence button{border:1px solid #d4cddd;border-radius:8px;min-height:40px;padding:7px 12px;background:white;color:#524165;font-size:14px}
.sim-step-mode{font-size:14px;display:flex;align-items:center;gap:6px;cursor:pointer;min-height:40px}
.sim-shell input[type=checkbox]{accent-color:#7851a2;width:17px;height:17px;flex:none}
.sim-layout{display:grid;grid-template-columns:minmax(0,1fr) 292px;align-items:start}
.sim-stage-column{min-width:0;border-right:1px solid #e2dde8}
.sim-stage-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;gap:12px;border-bottom:1px solid #eee9f0;background:#fdfcfa}
.sim-stage-toolbar>span{font-size:12px;color:#6d6379}
.sim-stage-toolbar>div{display:flex;gap:6px;align-items:center}
.sim-stage-toolbar button{padding:4px 10px;min-width:38px;min-height:36px;font-size:14px}
#sim-zoom{min-width:45px;text-align:center;font-size:12px;color:#685b78;font-variant-numeric:tabular-nums}
.sim-viewport{overflow:auto;background-color:#fbfaf7;background-image:radial-gradient(#b9b1c94a .8px,transparent .8px);background-size:22px 22px;max-height:740px;scrollbar-color:#c0b1ce #f3eef6;scrollbar-width:thin;overscroll-behavior:contain}
#sim-diagram{display:block;width:100%;height:auto;max-width:none;min-width:560px}
.sim-zone{fill:#f0edf55c;stroke:#d8cfe3;stroke-dasharray:5 6;stroke-width:1}
.sim-node>rect{fill:#fffefc;stroke:#cac4d7;stroke-width:1.5;filter:drop-shadow(0 5px 5px #52466908)}
.sim-node.active>rect{stroke:#526fd1;fill:#fcfcff;stroke-width:2}
.sim-node.control>rect{stroke:#9c77b8;fill:#fffcff}
.sim-node.down>rect{stroke:#bd4761;fill:#fff4f5;stroke-dasharray:5 3}
.sim-node .device-illustration{--device-color:#6b78a6;--device-tint:#e9ecf7}
.sim-node.control .device-illustration{--device-color:#966bb3;--device-tint:#f0e6f6}
.sim-node.down .device-illustration{--device-color:#af526b;--device-tint:#f6e0e6}
.sim-node-dot{fill:#aaa0b6}.sim-node.active .sim-node-dot{fill:#375bcc}.sim-node.control .sim-node-dot{fill:#8250ad}.sim-node.down .sim-node-dot{fill:#c8445b}
.sim-node-title{text-anchor:middle;fill:#353044;font:600 15px 'Space Grotesk',sans-serif}
.sim-node-sub{text-anchor:middle;fill:#6b607a;font:12px 'Space Grotesk',sans-serif}
.sim-down-mark{font:600 22px 'Space Grotesk',sans-serif;fill:#b33c57}
.sim-edge{fill:none;stroke:#ccc5d7;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.sim-edge.standby{stroke-dasharray:4 6;opacity:.8}
.sim-edge.active{stroke:#375bcc;stroke-width:3;stroke-dasharray:10 8;animation:sim-packets 1.2s linear infinite}
.sim-edge.control{stroke:#9562b7;stroke-width:1.6;stroke-dasharray:3 7;animation:sim-packets 3s linear infinite}
.sim-edge.down{stroke:#c8445b;stroke-width:2;stroke-dasharray:3 9}
.sim-edge-label{font:12px 'Space Grotesk',sans-serif;text-anchor:middle;fill:#6c5c7d;paint-order:stroke;stroke:#fbfaf7;stroke-width:5;stroke-linejoin:round}
.sim-legend{display:flex;gap:10px 19px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid #e7e0eb;background:#fffefa}
.sim-legend span{display:flex;align-items:center;gap:7px;font-size:12px;color:#62576e}
.sim-legend i{display:inline-block;width:20px;border-top:2px solid #375bcc}
.sim-legend .control{border-color:#9562b7;border-top-style:dotted}.sim-legend .standby{border-color:#a9a0b7;border-top-style:dashed}.sim-legend .down{border-color:#c8445b;border-top-style:dashed}
.sim-result{border-top:1px solid #e5dfe9;padding:23px 25px 25px;background:linear-gradient(120deg,#f5f4fc,#fdf9fa)}
.sim-result>div{display:flex;gap:6px;flex-wrap:wrap}
.sim-chip{font-size:12px;border:1px solid #ccd6f0;border-radius:5px;color:#3757a9;padding:4px 7px;background:#f8faff}
.sim-chip.control{border-color:#ded0ea;color:#7b4f9a;background:#fcf8ff}.sim-chip.down{border-color:#ecc3cd;color:#a5304a;background:#fff5f7}.sim-chip.standby{border-color:#dbd4e0;color:#665972;background:#fbf9fc}
.sim-result h2{font:500 clamp(23px,2vw,30px)/1.2 Archivo,sans-serif;letter-spacing:-.04em;margin:17px 0 10px;color:#382d4a}
.sim-result p{font-size:16px;line-height:1.6;color:#62546e;margin:0;max-width:850px}
.sim-controls{padding:19px 18px 23px;min-width:0;max-height:960px;overflow-y:auto;scrollbar-width:thin}
.sim-controls fieldset{border:0;border-bottom:1px solid #e9e2ed;margin:0 0 18px;padding:0 0 17px;min-width:0}
.sim-controls legend{font-size:12px;text-transform:uppercase;letter-spacing:.075em;color:#796689;margin:0 0 12px;padding:0}
.sim-field{display:flex;flex-direction:column;gap:6px;font-size:14px;color:#62516f;margin-bottom:12px}
.sim-field select{font:14px/1.3 'Space Grotesk',sans-serif;min-height:43px;padding:8px 25px 8px 10px;border:1px solid #d9cede;border-radius:7px;background:#fff;color:#3c304a;max-width:100%;width:100%}
.sim-field select:disabled{opacity:.6}
.sim-check{display:flex;align-items:start;gap:9px;font-size:14px;line-height:1.45;margin:11px 0;cursor:pointer;color:#574661}
.sim-check input{margin:2px 0 0}
.sim-action{display:block;width:100%;min-height:43px;padding:10px 11px;border:1px solid #ddd3e3;border-radius:8px;background:#fffefa;color:#554263;text-align:left;font-size:14px;line-height:1.35;margin:7px 0;transition:background .2s,border-color .2s}
.sim-action:hover:not(:disabled){background:#f3eef8;border-color:#af98c5}
.sim-action.restore{color:#365ab3;background:#f8faff;border-color:#cdd7ef}
.sim-action.primary{background:#7852a1;color:#fff;border-color:#7852a1}.sim-action.primary:hover:not(:disabled){background:#65418e}
.sim-help{font-size:12px;line-height:1.6;color:#71647c;margin:12px 0 0}
.sim-sequence{border-top:1px solid #dcd3e4;padding:24px 25px;background:#f3f0f7}
.sim-sequence-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:39px;margin-bottom:17px}
.sim-sequence-heading>span{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:#76558f}
.sim-sequence ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.sim-sequence li{display:flex;gap:10px;border-top:2px solid #d8cde1;padding-top:14px;color:#7f718b}
.sim-sequence li.current{border-color:#8250ad;color:#42314f}.sim-sequence li.done{border-color:#ad97c1;color:#655073}
.sim-sequence li>span{font-size:12px;font-variant-numeric:tabular-nums;margin-top:1px}
.sim-sequence strong{font-size:14px;line-height:1.4;font-weight:600;display:block}
.sim-sequence p{font-size:14px;line-height:1.55;margin:8px 0 0}
.sim-details{padding:32px 28px;display:grid;grid-template-columns:1.4fr 1fr;gap:45px}
.sim-details h2{font:500 23px/1.2 Archivo,sans-serif;letter-spacing:-.035em;color:#4b375b;margin:0 0 18px}
.sim-details ul{padding-left:18px;margin:0}.sim-details li{font-size:16px;color:#6b5b77;line-height:1.65;margin:0 0 14px;padding-left:5px}.sim-details li::marker{color:#9d7ab8}
.sim-sources{margin-top:24px;border-block:1px solid #dcd4e3;padding:19px 0;color:#6b5c76}
.sim-sources summary{font-size:14px;cursor:pointer;padding:5px 0}
.sim-sources p{font-size:14px;line-height:1.7;max-width:900px;margin:18px 0}
.sim-sources ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 25px;list-style:none;padding:0}
.sim-sources a{font-size:14px;color:#694887;text-decoration:underline;text-underline-offset:4px}
.sim-fallback{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;padding:30px;border:1px solid #d8d3e0}.sim-fallback>p{grid-column:1/-1}.sim-fallback h2{font-size:24px}.sim-fallback p{font-size:16px;line-height:1.7}
@keyframes sim-packets{to{stroke-dashoffset:-72}}
.motion-paused .sim-edge,.sim-shell:not(.sim-visible) .sim-edge,.sim-document-hidden .sim-edge{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.sim-edge{animation:none!important}.sim-shell *{transition:none!important;scroll-behavior:auto!important}}

@media(max-width:1120px){.sim-shell{width:calc(100% - 40px)}.sim-tabs button{gap:8px;padding:15px 10px}.sim-tab-index{font-size:20px}.sim-tabs strong{font-size:14px}.sim-tabs small{font-size:12px}.sim-layout{grid-template-columns:minmax(0,1fr) 270px}.sim-sequence ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.sim-intro>p{max-width:340px}}
@media(max-width:800px){.sim-shell{margin-top:35px}.sim-intro{align-items:start;flex-direction:column;gap:17px}.sim-intro>p{max-width:none}.sim-tabs{display:flex;overflow-x:auto;scrollbar-width:thin}.sim-tabs button{flex:0 0 190px;min-height:79px;padding:14px}.sim-layout{grid-template-columns:minmax(0,1fr)}.sim-stage-column{border-right:0}.sim-controls{max-height:none;border-top:1px solid #e2d9e8;padding:24px}#sim-controls{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;align-items:start}#sim-controls>fieldset{height:100%}.sim-controls>.sim-action{align-self:start}.sim-toolbar{flex-wrap:wrap;padding:14px 17px}.sim-tools{margin-left:auto}.sim-details{grid-template-columns:1fr;gap:25px}.sim-viewport{max-height:540px}.sim-result{padding:20px}.sim-stage-toolbar{padding:10px 12px}.sim-stage-toolbar>span{max-width:160px}.sim-sources ul{grid-template-columns:1fr}}
@media(max-width:480px){.sim-shell{width:calc(100% - 24px);margin-top:28px}.sim-app{border-radius:14px}.sim-intro h1{font-size:40px}.sim-intro>p{font-size:16px}.sim-toolbar>div{gap:10px}.sim-toolbar strong{font-size:14px}#sim-status{padding-left:8px;font-size:12px}.sim-tools{width:100%;justify-content:space-between}.sim-stage-toolbar>span{font-size:12px;max-width:90px}.sim-stage-toolbar button{min-width:34px;padding:4px 7px}.sim-stage-toolbar>div{gap:4px}.sim-legend{padding:13px;gap:10px 14px}.sim-legend span{font-size:12px}.sim-controls{padding:22px 17px}#sim-controls{grid-template-columns:1fr}.sim-controls fieldset{padding-bottom:18px;margin-bottom:18px}.sim-sequence{padding:20px 17px}.sim-sequence ol{grid-template-columns:1fr;gap:18px}.sim-sequence li{padding-top:12px}.sim-sequence p{margin-top:5px}.sim-sequence-heading{gap:12px}.sim-sequence-heading>span{font-size:12px}.sim-sequence button{font-size:13px;white-space:nowrap}.sim-details{padding:25px 18px;gap:22px}.sim-fallback{grid-template-columns:1fr;padding:20px}.sim-tab-index{font-size:24px}}
@media print{.sim-controls,.sim-tools,.sim-stage-toolbar,.sim-sequence button{display:none}.sim-layout{display:block}.sim-viewport{overflow:visible;max-height:none}#sim-diagram{width:100%!important;min-width:0}.sim-tabs{display:none}.sim-shell{width:100%;margin:0}.sim-app{border:0;box-shadow:none}.sim-edge{animation:none}.sim-sequence,.sim-details{break-inside:avoid}}
/* Flow purpose is encoded by color; availability is encoded independently. */
.sim-edge[data-traffic]{stroke:var(--flow-color);stroke-width:2}
.traffic-internet{--flow-color:#2563eb}.traffic-auth{--flow-color:#16834a}.traffic-contractor{--flow-color:#d12f4d}.traffic-private{--flow-color:#8a3fc2}.traffic-control{--flow-color:#a76a08}
.sim-edge[data-state=active]{stroke-width:3.2;stroke-dasharray:12 8;opacity:1}
.sim-edge[data-state=control]{stroke-width:2;stroke-dasharray:3 6;opacity:.85}
.sim-edge[data-state=standby]{stroke-dasharray:3 7;opacity:.4;animation:none}
.sim-edge[data-state=down]{stroke-width:2;stroke-dasharray:3 10;opacity:.62;animation:none}
.sim-node.internet>rect{fill:#edf4ff;stroke:#2563eb;stroke-width:2.5;filter:drop-shadow(0 6px 10px #2563eb14)}
.sim-node.internet .device-illustration{--device-color:#2563eb;--device-tint:#dce9ff}
.sim-node.internet .sim-node-title{fill:#1e4ca2;font-size:21px}.sim-node.internet .sim-node-dot{fill:#2563eb}
.sim-node.auth>rect{fill:#f1faf4;stroke:#16834a}.sim-node.auth .device-illustration{--device-color:#16834a;--device-tint:#def3e5}.sim-node.auth .sim-node-dot{fill:#16834a}
.sim-node.control>rect{stroke:#b07d27;fill:#fffbf2}.sim-node.control .device-illustration{--device-color:#a76a08;--device-tint:#f8edd6}.sim-node.control .sim-node-dot{fill:#a76a08}
.sim-legend i.internet{border-color:#2563eb}.sim-legend i.auth{border-color:#16834a}.sim-legend i.contractor{border-color:#d12f4d}.sim-legend i.private{border-color:#8a3fc2}.sim-legend i.control{border-color:#a76a08;border-top-style:solid}
.sim-legend .sim-legend-state{flex-basis:100%;padding-top:5px;font-size:12px;color:#706579}
#sim-diagram{min-width:0}.sim-node-title{font-size:16px}.sim-node-sub{font-size:13px}
.sim-tools>[data-command=next]{background:#76509d;color:#fff;border-color:#76509d}
.sim-tools{flex-wrap:wrap}.sim-toolbar>div:first-child{flex:1 1 250px}
@media(max-width:480px){.sim-tools{gap:8px}.sim-tools>button{font-size:12px;padding:7px 9px}.sim-step-mode{font-size:13px}.sim-legend{gap:9px 15px}}
.sim-viewport{scrollbar-gutter:stable}#sim-diagram{margin-inline:auto}
