/* Civitas Nexus AI CRM V1.7 · Sala HD vettoriale (js/room.js) */
.live-viewport{overflow-x:auto;overflow-y:hidden;background:#020814}
.live-stage{position:relative;margin:0 auto;overflow:hidden}
.live-room.room-hd{position:absolute;top:0;left:0;width:1200px;height:560px;min-width:0;max-width:none;transform-origin:0 0;background:#020814}
.live-room.room-hd::before,.live-room.room-hd::after{display:none}
.room-hd .rm-back,.room-hd .rm-front{position:absolute;top:0;left:0;width:100%;height:100%;display:block}
.room-hd .rm-back{z-index:1}
.room-hd .rm-front{z-index:7;pointer-events:none}
.room-hd .actor-layer{z-index:auto}
/* Personaggi un po' più grandi nella sala HD e luce dello schermo sul viso quando lavorano seduti */
.room-hd .actor{width:96px;height:150px}
.room-hd .actor-body{width:96px;height:150px}
.room-hd .actor.is-seated .actor-body{filter:drop-shadow(0 0 10px rgba(80,200,255,.35)) drop-shadow(0 8px 8px rgba(0,0,0,.35))}
.room-hd .actor.is-seated .actor-shadow{opacity:0}
.room-hd .actor-tag{font-size:11px}
/* Animazioni dell'ambiente */
.rm-win{animation:rm-twinkle 7s ease-in-out infinite}
@keyframes rm-twinkle{0%,100%{opacity:.2}50%{opacity:.85}}
.rm-bar{transform-box:fill-box;transform-origin:50% 100%;animation:rm-bar 3.4s ease-in-out infinite alternate}
@keyframes rm-bar{from{transform:scaleY(.55)}to{transform:scaleY(1)}}
.rm-scan{animation:rm-scan 3.2s linear infinite}
.rm-main .rm-scan{animation-duration:4.4s}
@keyframes rm-scan{from{transform:translateY(0);opacity:0}10%{opacity:1}to{transform:translateY(200px);opacity:0}}
.rm-screen{animation:rm-hum 5s ease-in-out infinite}
@keyframes rm-hum{0%,100%{opacity:1}50%{opacity:.88}}
.rm-line{stroke-dasharray:420;stroke-dashoffset:420;animation:rm-draw 5s ease-in-out infinite}
.rm-line-2{stroke:#3fe8a8!important;opacity:.6;animation-delay:-2.2s}
@keyframes rm-draw{0%{stroke-dashoffset:420}45%,80%{stroke-dashoffset:0}100%{stroke-dashoffset:-420}}
.rm-node{animation:rm-node 2.6s ease-in-out infinite}
@keyframes rm-node{0%,100%{opacity:.4}50%{opacity:1}}
.rm-neon-glow{animation:rm-neon 3.6s ease-in-out infinite}
@keyframes rm-neon{0%,100%{opacity:.12}50%{opacity:.34}}
.rm-mer{animation:rm-mer 8s linear infinite}
@keyframes rm-mer{0%{transform:scaleX(1)}50%{transform:scaleX(0)}100%{transform:scaleX(-1)}}
.rm-sat{animation:rm-orbit 9s linear infinite}
@keyframes rm-orbit{to{transform:rotate(360deg)}}
.rm-continents{animation:rm-spin-x 10s linear infinite;transform-box:fill-box;transform-origin:50% 50%}
@keyframes rm-spin-x{0%{transform:translateX(-14px);opacity:.15}20%,80%{opacity:.6}100%{transform:translateX(14px);opacity:.15}}
.rm-holo-float{animation:rm-float 4s ease-in-out infinite}
@keyframes rm-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.rm-plant{transform-box:fill-box;transform-origin:50% 100%;animation:rm-sway 5.5s ease-in-out infinite}
@keyframes rm-sway{0%,100%{transform:rotate(-1.5deg)}50%{transform:rotate(1.8deg)}}
.rm-steam{animation:rm-steam 2.4s ease-in-out infinite}
@keyframes rm-steam{0%{opacity:0;transform:translateY(4px)}50%{opacity:.8}100%{opacity:0;transform:translateY(-6px)}}
.rm-mon{animation:rm-mon 4.8s ease-in-out infinite}
@keyframes rm-mon{0%,100%{opacity:1}50%{opacity:.86}}
:root[data-staff-motion="off"] .room-hd *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.room-hd *{animation:none!important}}
.rm-monline{animation:rm-type 1.8s steps(6) infinite}
@keyframes rm-type{0%{stroke-dasharray:0 60}100%{stroke-dasharray:60 0}}
