rr-digital-twin{display:block;min-width:0;min-height:0;height:100%}.rr-twin{display:flex;flex-direction:column;height:100%;min-height:0;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,rgba(13,28,42,.98),rgba(5,14,23,.98));box-shadow:0 14px 40px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.03);overflow:hidden}.rr-twin-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:8px 12px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(20,54,78,.55),rgba(8,21,32,.75))}.rr-twin-head>div{display:flex;flex-direction:column;min-width:0}.rr-twin-head span{color:var(--blue-2);font-size:8px;font-weight:850;letter-spacing:.14em}.rr-twin-head strong{margin-top:2px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rr-twin-state{display:flex;align-items:center;gap:7px;min-height:28px;padding:0 9px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.04);color:#c4d5e2;font-size:8px;cursor:pointer}.rr-twin-state i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}.rr-twin-state.caution i{background:var(--amber);box-shadow:0 0 10px var(--amber)}.rr-twin-state.fault i{background:var(--red);box-shadow:0 0 10px var(--red)}.rr-twin-viewport{position:relative;flex:1;min-height:310px;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 58% 20%,rgba(65,150,216,.25),transparent 33%),linear-gradient(180deg,#182a3a 0%,#0b1722 58%,#050c12 100%)}.rr-twin-grid{position:absolute;inset:0;opacity:.28;background-image:linear-gradient(rgba(109,167,205,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(109,167,205,.12) 1px,transparent 1px);background-size:38px 38px;transform:perspective(720px) rotateX(61deg) scale(1.65);transform-origin:center bottom}.rr-twin-glow{position:absolute;width:48%;height:48%;border-radius:50%;filter:blur(48px);opacity:.18}.rr-twin-glow-a{left:4%;top:-4%;background:#48b3ff}.rr-twin-glow-b{right:-4%;bottom:-12%;background:#36d598}.rr-twin-floor{position:absolute;left:-10%;right:-10%;bottom:-23%;height:57%;background:linear-gradient(180deg,rgba(75,108,132,.26),rgba(2,7,11,.92));transform:perspective(690px) rotateX(68deg);border-top:1px solid rgba(255,255,255,.08)}.rr-twin-fence{position:absolute;top:6%;bottom:25%;width:17%;opacity:.36;background-image:linear-gradient(#c39025 0 0),repeating-linear-gradient(90deg,transparent 0 16px,rgba(153,175,190,.34) 17px 18px),repeating-linear-gradient(0deg,transparent 0 16px,rgba(153,175,190,.34) 17px 18px);background-size:5px 100%,auto,auto;background-repeat:no-repeat,repeat,repeat}.rr-twin-fence-l{left:1%}.rr-twin-fence-r{right:1%;transform:scaleX(-1)}.rr-twin-table{position:absolute;width:42%;height:25%;right:6%;bottom:6%;border:2px solid #4c6170;border-radius:7px;background:linear-gradient(135deg,#2a3d4b,#111b23);transform:perspective(800px) rotateX(60deg) rotateZ(-7deg);box-shadow:0 30px 40px rgba(0,0,0,.5)}.rr-twin-table:before{content:"";position:absolute;inset:8px;background-image:radial-gradient(circle,#8aa0ae 0 2px,transparent 2.5px);background-size:24px 24px;opacity:.46}.rr-twin-fixture{position:absolute;left:19%;top:22%;width:57%;height:49%;border:3px solid #728895;border-radius:7px;box-shadow:inset 0 0 0 6px rgba(8,13,17,.78)}.rr-twin-robot{position:absolute;user-select:none;pointer-events:none;object-fit:contain;transform-origin:bottom center;filter:drop-shadow(0 30px 18px rgba(0,0,0,.44))}.rr-twin-actual{width:47%;height:93%;left:8%;bottom:0;z-index:3}.rr-twin-ghost{--preview-x:20px;--preview-y:-8px;--preview-r:-2deg;width:42%;height:84%;left:35%;bottom:4%;z-index:2;opacity:.15;filter:grayscale(.2) hue-rotate(158deg) drop-shadow(0 0 12px rgba(60,181,255,.6));transform:translate(var(--preview-x),var(--preview-y)) rotate(var(--preview-r));transition:transform .22s ease,opacity .22s ease}.rr-twin-ghost.preview-active{opacity:.3;filter:grayscale(.15) hue-rotate(150deg) drop-shadow(0 0 18px rgba(63,196,255,.9))}.rr-twin-path{position:absolute;inset:0;width:100%;height:100%;z-index:7;overflow:visible;pointer-events:none}.rr-twin-path path{fill:none;stroke-linecap:round;stroke-linejoin:round}.rr-path-remaining{stroke:rgba(216,229,238,.55);stroke-width:4}.rr-path-completed{stroke:var(--green);stroke-width:6;filter:drop-shadow(0 0 6px rgba(112,227,91,.5))}.rr-path-current{stroke:var(--blue);stroke-width:7;filter:drop-shadow(0 0 7px rgba(36,152,255,.72))}.rr-path-rapid{stroke:rgba(220,232,240,.5);stroke-width:3;stroke-dasharray:11 10}.rr-path-point{stroke:rgba(255,255,255,.9);stroke-width:2.5}.rr-path-point.done{fill:var(--green)}.rr-path-point.current{fill:var(--blue);filter:drop-shadow(0 0 8px var(--blue))}.rr-path-point.future{fill:#788c9a}.rr-twin-frame{position:absolute;left:22px;bottom:18px;z-index:9;width:66px;height:64px;color:#dbe9f4;font-size:8px;font-weight:800}.rr-twin-frame:before,.rr-twin-frame:after{content:"";position:absolute;left:20px;bottom:20px;width:34px;height:2px;transform-origin:left center;background:var(--green)}.rr-twin-frame:after{transform:rotate(-25deg);background:var(--red)}.rr-twin-frame .rr-frame-z:before{content:"";position:absolute;left:23px;bottom:20px;width:2px;height:35px;background:var(--blue)}.rr-twin-frame span{position:absolute}.rr-frame-x{right:2px;bottom:4px;color:var(--red)}.rr-frame-y{right:5px;top:17px;color:var(--green)}.rr-frame-z{left:17px;top:0;color:var(--blue)}.rr-twin-frame b{position:absolute;left:0;bottom:-1px;min-width:80px;color:#b9cbd8;font-size:7px;letter-spacing:.08em}.rr-frame-work{transform:translate(24px,-16px) rotate(-7deg)}.rr-frame-tool{left:auto;right:18%;bottom:35%;transform:rotate(-19deg)}.rr-frame-joint{opacity:.64}.rr-twin-hotspot{position:absolute;z-index:12;width:17px;height:17px;padding:0;border:2px solid white;border-radius:50%;background:var(--blue);box-shadow:0 0 0 5px rgba(36,152,255,.16),0 0 14px rgba(36,152,255,.72);cursor:pointer}.rr-twin-hotspot:after{content:"";position:absolute;inset:-13px}.rr-twin-hotspot span{display:none}.rr-twin-hotspot em{position:absolute;display:none;left:20px;top:-7px;min-width:max-content;padding:4px 7px;border-radius:5px;border:1px solid var(--line);background:#06111a;color:white;font-size:8px;font-style:normal}.rr-twin-hotspot:hover em,.rr-twin-hotspot:focus-visible em{display:block}.rr-twin-hotspot.robot{left:34%;top:44%}.rr-twin-hotspot.tool{left:57%;top:49%;background:var(--green);box-shadow:0 0 0 5px rgba(112,227,91,.14),0 0 14px rgba(112,227,91,.7)}.rr-twin-hotspot.fixture{right:22%;bottom:18%;background:var(--amber);box-shadow:0 0 0 5px rgba(255,189,66,.14),0 0 14px rgba(255,189,66,.7)}.rr-twin-hotspot.camera{right:9%;top:28%}.rr-twin-preview-label,.rr-twin-fault-label,.rr-twin-peripheral-label{position:absolute;z-index:15;display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;border:1px solid rgba(88,184,255,.35);background:rgba(3,13,21,.84);backdrop-filter:blur(9px);color:#d9eaf7;font-size:8px;letter-spacing:.06em}.rr-twin-preview-label{right:14px;top:14px;color:#8dd5ff}.rr-twin-fault-label{left:46%;top:34%;border-color:rgba(242,78,69,.48);color:#ffd3ce}.rr-twin-fault-label b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--red);color:white}.rr-twin-fault-label span{font-size:8px}.rr-twin-peripheral-label{right:14px;top:14px;border-color:rgba(112,227,91,.34);color:#caffbe}.rr-twin-peripheral-label b{color:var(--green)}.rr-twin-legend{position:absolute;left:50%;bottom:12px;z-index:13;display:flex;align-items:center;gap:10px;transform:translateX(-50%);padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:rgba(3,12,20,.78);backdrop-filter:blur(8px);font-size:7px}.rr-twin-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}.rr-twin-legend i{width:18px;height:2px;border-radius:2px;background:#8498a6}.rr-twin-legend i.complete{background:var(--green)}.rr-twin-legend i.current{background:var(--blue)}.rr-twin-legend i.rapid{background:repeating-linear-gradient(90deg,#9cadb9 0 5px,transparent 5px 8px)}.rr-twin-help{position:absolute;left:50%;bottom:10px;z-index:16;transform:translateX(-50%);width:max-content;max-width:82%;min-height:31px;padding:0 12px;border:1px solid rgba(88,184,255,.25);border-radius:999px;background:rgba(3,13,21,.84);color:#d8e8f5;font-size:8px;cursor:pointer}.rr-twin.has-fault .rr-twin-actual{filter:drop-shadow(0 30px 18px rgba(0,0,0,.44)) drop-shadow(0 0 13px rgba(242,78,69,.35))}.rr-twin-peripherals[data-peripheral="vision"] .camera,.rr-twin-peripherals[data-peripheral="sensors"] .camera{transform:scale(1.35)}.rr-twin-peripherals[data-peripheral="end-effector"] .tool,.rr-twin-peripherals[data-peripheral="process-tools"] .tool{transform:scale(1.35)}.rr-twin-settings .rr-twin-frame{filter:drop-shadow(0 0 9px rgba(36,152,255,.75));transform:scale(1.28)}.rr-twin-manual .rr-twin-ghost{opacity:.24}.rr-twin-cam .rr-twin-path path{stroke-width:5}.rr-twin-cam .rr-path-current{stroke:#38d7ff;stroke-width:8}.rr-twin-diagnostics .rr-twin-hotspot.robot{background:var(--red);box-shadow:0 0 0 7px rgba(242,78,69,.16),0 0 18px rgba(242,78,69,.7)}
@media(max-height:760px){.rr-twin-head{min-height:40px}.rr-twin-viewport{min-height:260px}.rr-twin-actual{width:43%;height:90%}.rr-twin-ghost{width:39%;height:81%}}
@media(max-width:900px){.rr-twin-head strong{font-size:12px}.rr-twin-viewport{min-height:340px}}


/* Rapid ORBIT 2.4 — anthracite RR-1515 and spatial joint diagnostics */
.rr-twin-viewport{
  background:
    radial-gradient(ellipse at 28% 0%,rgba(174,218,248,.24),transparent 24%),
    radial-gradient(ellipse at 74% 0%,rgba(174,218,248,.20),transparent 24%),
    radial-gradient(circle at 58% 30%,rgba(45,121,176,.20),transparent 37%),
    linear-gradient(180deg,#0a1824 0%,#07121c 58%,#03080d 100%);
}
.rr-twin-viewport:before,.rr-twin-viewport:after{content:"";position:absolute;z-index:0;top:-8%;width:24%;height:52%;background:linear-gradient(180deg,rgba(209,235,252,.28),rgba(99,176,227,.08) 38%,transparent 80%);filter:blur(10px);transform:perspective(500px) rotateX(12deg)}
.rr-twin-viewport:before{left:8%;clip-path:polygon(34% 0,66% 0,100% 100%,0 100%)}.rr-twin-viewport:after{right:8%;clip-path:polygon(34% 0,66% 0,100% 100%,0 100%)}
.rr-twin-red-light{position:absolute;z-index:1;top:18%;width:4px;height:34%;border-radius:4px;background:#ff3541;box-shadow:0 0 6px #ff3541,0 0 22px rgba(255,40,54,.55)}
.rr-twin-red-light-l{left:10%}.rr-twin-red-light-r{right:10%}
.rr-twin-orbit-floor{position:absolute;z-index:1;left:16%;right:16%;bottom:1%;height:27%;border-radius:50%;transform:perspective(620px) rotateX(67deg)}
.rr-twin-orbit-floor i{position:absolute;inset:0;border:2px solid rgba(68,165,235,.35);border-radius:50%;box-shadow:0 0 14px rgba(54,153,226,.12)}
.rr-twin-orbit-floor i:nth-child(2){inset:13%;border-color:rgba(70,180,250,.55)}.rr-twin-orbit-floor i:nth-child(3){inset:31%;border-color:rgba(255,53,65,.38)}
.rr-twin-robot{filter:drop-shadow(0 30px 22px rgba(0,0,0,.66)) drop-shadow(0 0 7px rgba(90,179,235,.22))}
.rr-twin-ghost{filter:grayscale(.05) hue-rotate(155deg) saturate(.8) brightness(1.25) drop-shadow(0 0 17px rgba(56,185,255,.75))}
.rr-twin-map .rr-twin-fence,.rr-twin-map .rr-twin-table,.rr-twin-map .rr-twin-path,.rr-twin-map .rr-twin-hotspot{display:none}
.rr-twin-map .rr-twin-grid{opacity:.18}
.rr-twin-map .rr-twin-floor{bottom:-25%;height:61%;background:linear-gradient(180deg,rgba(55,85,106,.28),rgba(2,6,10,.95))}
.rr-twin-map .rr-twin-actual{left:24%;width:52%;height:94%;bottom:1%}
.rr-twin-map .rr-twin-frame{right:7%;left:auto;bottom:11%}
.rr-twin-map .rr-twin-help{bottom:8px}
.rr-twin-map .rr-twin-head{background:linear-gradient(90deg,rgba(11,31,47,.92),rgba(6,17,27,.88))}
.rr-twin-map .rr-twin-head strong{font-size:14px}

.rr-joint-pinpoints{display:none;position:absolute;inset:0;z-index:18;pointer-events:none}
.rr-twin-diagnostics .rr-joint-pinpoints{display:block}
.rr-joint-pin{position:absolute;display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid rgba(105,235,90,.8);border-radius:50%;background:rgba(5,22,24,.9);box-shadow:0 0 0 4px rgba(112,227,91,.10),0 0 13px rgba(112,227,91,.35);color:#caffc2;pointer-events:auto;cursor:pointer}
.rr-joint-pin:before,.rr-joint-pin:after{content:"";position:absolute;background:rgba(112,227,91,.72)}
.rr-joint-pin:before{left:-5px;right:-5px;height:1px}.rr-joint-pin:after{top:-5px;bottom:-5px;width:1px}
.rr-joint-pin span{position:relative;z-index:2;font-size:7px;font-weight:900}
.rr-joint-pin:hover,.rr-joint-pin.selected{border-color:var(--blue);background:rgba(8,44,69,.95);color:white;box-shadow:0 0 0 5px rgba(36,152,255,.16),0 0 18px rgba(36,152,255,.75)}
.rr-joint-pin.selected:before,.rr-joint-pin.selected:after{background:var(--blue)}
.rr-joint-pin.j1{left:25%;top:77%}.rr-joint-pin.j2{left:26%;top:62%}.rr-joint-pin.j3{left:35%;top:43%}.rr-joint-pin.j4{left:37%;top:26%}.rr-joint-pin.j5{left:43%;top:15%}.rr-joint-pin.j6{left:49%;top:29%}
.rr-twin.has-fault .rr-joint-pin.selected{border-color:var(--red);background:rgba(73,13,16,.95);box-shadow:0 0 0 5px rgba(242,78,69,.18),0 0 18px rgba(242,78,69,.82)}
.rr-twin.has-fault .rr-joint-pin.selected:before,.rr-twin.has-fault .rr-joint-pin.selected:after{background:var(--red)}
