.iot-building-section .smart-building-layout{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(260px,1fr);gap:32px;align-items:start;margin-top:30px}.smart-building-map{display:block;width:100%;height:auto;min-width:0;overflow:hidden;background:var(--navy);border:1px solid var(--line);border-radius:16px}.building-side{fill:#0a2940;stroke:#25506a;stroke-width:2}.floor-shell{fill:#061727;stroke:#31566e;stroke-width:2}.building-room{fill:#0a2135;stroke:#24506b;stroke-width:1.5}.floor-label{font:700 17px Arial,sans-serif;letter-spacing:2px;fill:#42f21b}.room-label{font:700 16px Arial,sans-serif;fill:#f5f9fc}.room-sub,.door-label{font:14px Arial,sans-serif;fill:#b8c8d3}.building-fixture{fill:none;stroke:#7795a8;stroke-width:2}.sensor-signal{fill:none;stroke-width:2;stroke-dasharray:3 15;opacity:.35}.signal-blue{stroke:#0785ff}.signal-green{stroke:#42f21b}.sensor-blue{color:#0785ff}.sensor-green{color:#42f21b}.sensor-dot{fill:currentColor;stroke:#f5f9fc;stroke-width:1.4}.sensor-ring{fill:none;stroke:currentColor;stroke-width:2;opacity:.35;transform-box:fill-box;transform-origin:center}.sensor-letter{font:700 12px Arial,sans-serif;fill:#020c18}.sensor-label{font:700 14px Arial,sans-serif;fill:#f5f9fc;paint-order:stroke;stroke:#0a2135;stroke-width:5;stroke-linejoin:round}.building-gateway rect{fill:#0785ff;stroke:#f5f9fc;stroke-width:1.5}.building-gateway path{fill:none;stroke:#42f21b;stroke-width:2.5}.building-gateway text{font:700 12px Arial,sans-serif;fill:#fff}.gateway-label{font:14px Arial,sans-serif;fill:#b8c8d3}
.smart-building-legend{list-style:none;padding:0;margin:0;display:grid;gap:15px}.smart-building-legend li{display:flex;align-items:flex-start;gap:12px;min-width:0}.legend-symbol{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--blue);border-radius:50%;font-size:12px;font-weight:700;color:var(--green);background:var(--navy2)}.smart-building-legend strong{display:block;font-size:14px;line-height:1.4}.smart-building-legend p{font-size:13px;line-height:1.55;margin:3px 0 0}
@keyframes building-sensor-appear{0%,3%{opacity:0}8%,94%{opacity:1}100%{opacity:0}}@keyframes building-pulse{0%,20%,100%{opacity:.15;transform:scale(1)}35%{opacity:.55;transform:scale(1.7)}60%{opacity:0;transform:scale(2)}}@keyframes building-transmit{from{stroke-dashoffset:36}to{stroke-dashoffset:0}}
.iot-motion-enabled .building-sensor{animation:building-sensor-appear 12s ease-in-out infinite both;animation-delay:var(--sensor-delay)}.iot-motion-enabled .sensor-ring{animation:building-pulse 3s ease-out infinite;animation-delay:var(--sensor-delay)}.iot-motion-enabled .sensor-signal{animation:building-transmit 2s linear infinite;animation-delay:var(--sensor-delay)}
.iot-loop-flow .flow-diagram{position:relative}.iot-loop-flow .flow-steps{position:relative;z-index:1}.iot-loop-flow .flow-step::after{display:none}.iot-flow-track{position:absolute;z-index:2;left:10%;right:10%;top:96px;height:2px;background:#0785ff44;pointer-events:none}.iot-flow-track span{position:absolute;left:0;top:-3px;width:8px;height:8px;border-radius:50%;background:#42f21b;box-shadow:0 0 12px #42f21b,0 0 20px #0785ff}
@keyframes iot-flow-dot{0%{left:0;opacity:0}3%{opacity:1}97%{opacity:1}100%{left:100%;opacity:0}}@keyframes iot-flow-highlight{0%,17%{border-color:#42f21b;box-shadow:0 0 16px #0785ff33}22%,100%{border-color:var(--line);box-shadow:none}}
.iot-loop-flow.iot-motion-enabled .flow-step,.iot-loop-flow.iot-motion-enabled .flow-diagram.flow-running .flow-step{animation:iot-flow-highlight 7s ease-out infinite;animation-delay:calc(var(--step)*1.4s)}.iot-loop-flow.iot-motion-enabled .iot-flow-track span{animation:iot-flow-dot 7s linear infinite}.iot-loop-flow .flow-diagram.flow-running .flow-step::after{animation:none}
[data-iot-loop].iot-motion-enabled:not(.iot-motion-visible) *,[data-iot-loop].iot-motion-enabled:not(.iot-motion-visible) *::after{animation-play-state:paused!important}
@media(max-width:1050px){.iot-building-section .smart-building-layout{grid-template-columns:1fr}.smart-building-legend{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}
@media(max-width:1000px){.iot-loop-flow .flow-steps{grid-template-columns:1fr}.iot-loop-flow .flow-step{min-height:140px}.iot-flow-track{left:47px;right:auto;top:40px;bottom:65px;width:2px;height:auto}.iot-flow-track span{left:-3px;top:0}.iot-loop-flow .flow-icon{background:var(--navy);position:relative;z-index:3}.iot-loop-flow .flow-step{padding-left:20px}.iot-loop-flow .iot-flow-track{z-index:2}@keyframes iot-flow-dot{0%{top:0;opacity:0}3%{opacity:1}97%{opacity:1}100%{top:100%;opacity:0}}}
@media(max-width:600px){.smart-building-legend{grid-template-columns:1fr}.iot-building-section .smart-building-layout{gap:24px}.iot-building-section .wrap{min-width:0}.smart-building-map{max-width:100%}}
@media(prefers-reduced-motion:reduce){.iot-motion-enabled .building-sensor,.iot-motion-enabled .sensor-ring,.iot-motion-enabled .sensor-signal,.iot-loop-flow .flow-step,.iot-loop-flow .flow-diagram.flow-running .flow-step,.iot-loop-flow .iot-flow-track span{animation:none!important;opacity:1;transform:none}.iot-flow-track span{display:none}.building-sensor{opacity:1!important}}
