.hwbox{position:relative;background:var(--hw-bg);border:1px solid var(--bg-border-hover);border-radius:7px;box-shadow:var(--hw-shadow)}.led{display:inline-block;width:7px;height:4px;border-radius:1px;background:var(--led-off)}.led.g{background:var(--status-ok);box-shadow:0 0 6px color-mix(in srgb,var(--status-ok) 80%,transparent)}.led.a{background:var(--status-warn);box-shadow:0 0 6px color-mix(in srgb,var(--status-warn) 80%,transparent);animation:led-activity 1.3s steps(1) infinite}.led.b{background:var(--accent-cyan);box-shadow:0 0 5px color-mix(in srgb,var(--accent-cyan) 80%,transparent);animation:led-activity 1.7s steps(1) infinite}.led.dot{width:6px;height:6px;border-radius:50%}@keyframes led-activity{0%,18%,40%,55%{opacity:1}10%,30%,48%,70%,to{opacity:.12}}@keyframes disk-activity{0%,22%,51%,64%{opacity:1}11%,37%,58%,80%,to{opacity:.1}}.obj-switch{display:flex;gap:14px;padding:14px 18px 12px}.obj-switch .port{display:flex;flex-direction:column;align-items:center;gap:7px}.obj-switch .leds{display:flex;gap:14px}.rj{display:block;position:relative;width:40px;height:32px;background:var(--hw-port);border:1px solid var(--hw-edge);border-radius:3px;clip-path:polygon(0 0,100% 0,100% 74%,70% 74%,70% 100%,30% 100%,30% 74%,0 74%)}.rj:after{content:"";position:absolute;left:7px;right:7px;top:5px;height:6px;background:repeating-linear-gradient(90deg,var(--hw-pins) 0 1.5px,transparent 1.5px 3.4px)}.obj-switch .port-label{font-family:var(--font-mono);font-size:var(--obj-sm);color:var(--text-muted)}.obj-config{width:290px;padding:10px 0;overflow:hidden;font-family:var(--font-mono);font-size:var(--obj-lg);color:var(--text-secondary)}.obj-config .cl{position:relative;display:flex;justify-content:space-between;align-items:center;height:20px;padding:0 12px;white-space:pre}.obj-config .cl i{font-style:normal;font-size:var(--obj-md);opacity:0}.obj-config .cl .ok{color:var(--status-ok);animation:cfg-tick 4s infinite}.obj-config .cl.flag{animation:cfg-flag 4s infinite}.obj-config .cl.flag i{color:var(--status-warn);animation:cfg-tick 4s infinite}.obj-config .kw{color:var(--syntax-func)}.obj-config .scan{position:absolute;left:0;right:0;top:10px;height:20px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent-cyan) 14%,transparent),transparent);border-top:1px solid color-mix(in srgb,var(--accent-cyan) 45%,transparent);animation:cfg-scan 4s cubic-bezier(.5,0,.5,1) infinite}@keyframes cfg-scan{0%{transform:translateY(0);opacity:1}70%{transform:translateY(80px);opacity:1}78%,to{transform:translateY(80px);opacity:0}}@keyframes cfg-tick{0%{opacity:0}4%,85%{opacity:1}95%,to{opacity:0}}@keyframes cfg-flag{0%{background:transparent}4%,85%{background:color-mix(in srgb,var(--status-warn) 10%,transparent);box-shadow:inset 2px 0 0 var(--status-warn)}95%,to{background:transparent}}.obj-fw{position:relative;width:300px;height:110px;font-family:var(--font-mono)}.obj-fw .zone{position:absolute;top:0;font-size:var(--obj-sm);color:var(--text-muted);letter-spacing:var(--tracking-wider)}.obj-fw .zone--in{left:0}.obj-fw .zone--out{right:0}.obj-fw .wall{position:absolute;left:140px;top:14px;width:18px;height:84px;display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:8px;border-radius:4px;background:var(--hw-bg);border:1px solid var(--bg-border-hover)}.obj-fw .wall .led{width:6px;height:6px;border-radius:50%}.obj-fw .wall .hit{background:var(--led-crit-off);animation:fw-hit 2.6s infinite}@keyframes fw-hit{0%,to{background:var(--led-crit-off);box-shadow:none}3%{background:var(--status-crit);box-shadow:0 0 8px var(--status-crit)}12%{background:var(--led-crit-off);box-shadow:none}}.obj-fw .lane{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--wire-soft) 15%,var(--wire-soft) 85%,transparent)}.obj-fw .lane--1,.obj-fw .pk--1{top:34px}.obj-fw .lane--2,.obj-fw .pk--2{top:56px}.obj-fw .lane--3,.obj-fw .pk--3{top:78px}.obj-fw .pk{position:absolute;left:0;width:12px;height:5px;margin-top:-2px;border-radius:2px}.obj-fw .pk.g{background:var(--status-ok);box-shadow:0 0 6px color-mix(in srgb,var(--status-ok) 60%,transparent);animation:fw-pass 2.6s linear infinite}.obj-fw .pk.r{background:var(--status-crit);box-shadow:0 0 6px color-mix(in srgb,var(--status-crit) 60%,transparent);animation:fw-drop 2.6s linear infinite}@keyframes fw-pass{0%{transform:translate(0);opacity:0}8%,92%{opacity:1}to{transform:translate(288px);opacity:0}}@keyframes fw-drop{0%{transform:translate(0);opacity:0}8%{opacity:1}45%{transform:translate(124px);opacity:1}47%{transform:translate(120px)}60%,to{transform:translate(120px);opacity:0}}.obj-fw .count{position:absolute;right:0;bottom:-6px;font-size:var(--obj-md)}.obj-fw .count .accept{color:var(--status-ok)}.obj-fw .count .drop{color:var(--status-crit)}.obj-call{width:300px;padding:12px 14px;font-family:var(--font-mono)}.obj-call .call-top{display:flex;align-items:center;justify-content:space-between;font-size:var(--obj-base);color:var(--text-secondary)}.obj-call .call-status{display:inline-flex;align-items:center;gap:6px;color:var(--status-ok)}.obj-call .call-status:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--status-ok);box-shadow:0 0 6px var(--status-ok)}.obj-call .wave{display:flex;align-items:center;gap:3px;height:46px;margin:10px 0 8px}.obj-call .wave span{flex:1;height:100%;border-radius:2px;background:linear-gradient(180deg,var(--accent-cyan),var(--accent-blue));opacity:.85;animation:call-vu var(--t, 1.1s) ease-in-out infinite alternate}@keyframes call-vu{0%{transform:scaleY(.12)}to{transform:scaleY(var(--h, .7))}}.obj-call .call-ends{display:flex;justify-content:space-between;font-size:var(--obj-md);color:var(--text-muted)}.obj-server{display:flex;flex-direction:column;align-items:center;gap:14px}.obj-server .prompt{font-family:var(--font-mono);font-size:var(--obj-base);color:var(--text-muted)}.obj-server .prompt b{font-weight:var(--weight-regular);color:var(--text-secondary)}.obj-server .cursor{display:inline-block;width:6px;height:11px;background:var(--text-secondary);vertical-align:-1px;animation:led-activity 1.1s steps(1) infinite}.obj-server .chassis{display:flex;align-items:center;gap:10px;width:300px;height:58px;padding:0 10px}.obj-server .ear{width:8px;height:40px;border-radius:2px;border:1px solid var(--bg-border-hover)}.obj-server .bays{display:flex;flex:1;gap:6px}.bay{position:relative;flex:1;height:40px;border-radius:3px;background-color:var(--hw-well);background-image:repeating-linear-gradient(90deg,transparent 0 3px,var(--hw-stripe) 3px 4px);border:1px solid var(--hw-edge-soft)}.obj-server .bay .led{position:absolute;right:4px;bottom:4px;width:4px;height:4px;border-radius:50%;background:var(--accent-blue);box-shadow:0 0 5px var(--accent-blue);animation:disk-activity var(--t, 1s) steps(1) infinite}.obj-server .power{display:flex;flex-direction:column;gap:6px}.obj-server .power .led{width:5px;height:5px;border-radius:50%}.obj-git{width:300px;height:110px}.obj-git svg{width:100%;height:100%;overflow:visible}.obj-git .br{fill:none;stroke-width:2;stroke-linecap:round}.obj-git .br-main{stroke:var(--node-ring);stroke-dasharray:260;stroke-dashoffset:260;animation:git-main 6s ease infinite}.obj-git .br-feat{stroke:var(--accent-cyan);stroke-dasharray:210;stroke-dashoffset:210;animation:git-feat 6s ease infinite}@keyframes git-main{0%{stroke-dashoffset:260}45%,92%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes git-feat{0%,5%{stroke-dashoffset:210}45%,92%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}.obj-git .commit{fill:var(--bg-primary);stroke-width:2;opacity:0;animation:git-pop 6s infinite}.obj-git .commit--main{stroke:var(--node-ring-strong)}.obj-git .commit--feat{stroke:var(--accent-cyan)}.obj-git .commit--head{fill:var(--status-ok);stroke:var(--status-ok)}.obj-git text{font-family:var(--font-mono);font-size:var(--obj-sm);fill:var(--text-muted);opacity:0;animation:git-pop 6s infinite}.obj-git .label-feat{fill:var(--accent-cyan)}@keyframes git-pop{0%{opacity:0}4%,92%{opacity:1}to{opacity:0}}
