/* Character and animation rules reused verbatim from the supplied CardRPA console. */
.robot{animation:rbFloat 3s ease-in-out infinite}
@keyframes rbFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.robot .eye{transform-origin:center;animation:rbBlink 4.2s ease-in-out infinite}
.robot .eye.e2{animation-delay:.06s}
@keyframes rbBlink{0%,90%,100%{transform:scaleY(1)}93%,96%{transform:scaleY(.08)}}
.robot .pupil{animation:rbLook 7s ease-in-out infinite}
@keyframes rbLook{0%,28%,100%{transform:translateX(0)}38%,60%{transform:translateX(5px)}72%,86%{transform:translateX(-4px)}}
.robot .eyeHappy{display:none;stroke:#fff;stroke-width:4.5;fill:none;stroke-linecap:round}
.robot.expr-happy .eyeHappy{display:block}
.robot.expr-happy .eye{display:none}
.robot .spark{transform-origin:center;animation:rbSpin 6s linear infinite}
@keyframes rbSpin{0%{transform:rotate(0)}50%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}
.robot .glowdot{animation:rbGlow 1.6s ease-in-out infinite}
@keyframes rbGlow{0%,100%{opacity:.45}50%{opacity:1}}
.robot .mouth{transform-origin:75px 73px;animation:rbSmile 2.8s ease-in-out infinite}
@keyframes rbSmile{0%,100%{transform:scaleY(1)}45%{transform:scaleY(.55)}70%{transform:scaleY(1.12)}}
.robot .blush{opacity:0;transition:opacity .5s}
.robot.expr-smile .blush,.robot.expr-happy .blush{opacity:.9}
.robot .earL{transform-origin:46px 36px;animation:rbEar 3s ease-in-out infinite}
.robot .earR{transform-origin:104px 36px;animation:rbEar 3s ease-in-out infinite .15s}
@keyframes rbEar{0%,100%{transform:rotate(0)}50%{transform:rotate(-6deg)}}
/* Robot expression system: shared by all skins, independent of the 3D effects switch. */
#fabbot .robot{animation:none;overflow:visible}
#fabbot .bot-body{transform-origin:75px 86px;animation:botSideSway 4.8s ease-in-out infinite}
#fabbot.drag .bot-body{animation-play-state:paused}
#fabbot .robot .eye{transform-box:fill-box;transform-origin:center;animation:botNaturalBlink 4.2s ease-in-out infinite}
#fabbot .robot .eye.e2{animation-delay:.035s}
#fabbot .robot .pupil{animation:rbLook 7s ease-in-out infinite}
#fabbot .robot .mouth{animation:none;transform:none}
#fabbot .robot .mouth-shape{transition:d .35s ease}
#fabbot .robot .spark{transform-box:fill-box;transform-origin:center;animation:botStarTwinkle 3.1s ease-in-out infinite;opacity:1;transition:opacity .28s ease}
#fabbot .robot .sweat{opacity:0;pointer-events:none;transform-origin:105px 47px}
#fabbot .robot.expr-sweat .spark,#fabbot .robot.expr-sad .spark{opacity:0}
#fabbot .robot.expr-sweat .sweat,#fabbot .robot.expr-sad .sweat{animation:botSweatDrop 1.6s ease-in infinite}
#fabbot .robot .eyeHappy{transform-box:fill-box;transform-origin:center;animation:botNaturalBlink 4.2s ease-in-out infinite}
#fabbot .bot-hand.left{animation:botHandLeft 3.4s ease-in-out infinite}
#fabbot .bot-hand.right{animation:botHandRight 3.4s ease-in-out infinite}
@keyframes botSideSway{0%,100%{transform:translate(-4px,0) rotate(-2deg)}50%{transform:translate(4px,-2px) rotate(2deg)}}
@keyframes botNaturalBlink{0%,86%,92%,100%{transform:scaleY(1)}88%,90%{transform:scaleY(.07)}}
@keyframes botStarTwinkle{0%,100%{transform:rotate(-12deg) scale(.85)}50%{transform:rotate(14deg) scale(1.12)}}
@keyframes botSweatDrop{0%{opacity:0;transform:translateY(-3px) scale(.75)}18%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translateY(11px) scale(1)}}
@keyframes botHandLeft{0%,100%{transform:translate(0,1px)}50%{transform:translate(-2px,-2px)}}
@keyframes botHandRight{0%,100%{transform:translate(0,-1px)}50%{transform:translate(2px,2px)}}
@media(prefers-reduced-motion:reduce){html:not([data-motion-preference="on"]) #fabbot .bot-body,html:not([data-motion-preference="on"]) #fabbot .robot .eye,html:not([data-motion-preference="on"]) #fabbot .robot .eyeHappy,html:not([data-motion-preference="on"]) #fabbot .robot .pupil,html:not([data-motion-preference="on"]) #fabbot .robot .spark,html:not([data-motion-preference="on"]) #fabbot .robot .sweat,html:not([data-motion-preference="on"]) #fabbot .bot-hand{animation:none!important}html:not([data-motion-preference="on"]) #fabbot .robot.expr-sweat .sweat,html:not([data-motion-preference="on"]) #fabbot .robot.expr-sad .sweat{opacity:1}}

#fabbot.workbench-robot {position:fixed;right:16px;bottom:16px;width:96px;height:116px;padding:0;border:0;background:transparent;z-index:80;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;transition:filter .15s;}
#fabbot.workbench-robot.drag {cursor:grabbing;transition:none;}
#fabbot.workbench-robot svg {width:100%;height:100%;display:block;pointer-events:none;}
#fabbot.motion-paused .robot,#fabbot.motion-paused .robot * {animation:none!important;}
#fabbot.motion-paused .robot.expr-sweat .sweat,#fabbot.motion-paused .robot.expr-sad .sweat {opacity:1;}
.robot-shortcuts {position:fixed;width:300px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);box-shadow:0 12px 36px #18203330;z-index:81;overflow:auto;}
.robot-panel-heading {display:flex;align-items:center;justify-content:space-between;gap:10px;}
.robot-shortcuts p {font-size:12px;line-height:1.7;color:var(--muted);margin:8px 0 12px;}
.robot-shortcuts button {border:0;border-radius:6px;background:transparent;padding:8px 10px;color:inherit;cursor:pointer;font-size:12px;}
.robot-shortcuts button:hover {background:var(--goldSoft);color:var(--goldDeep);}
.robot-expressions {display:flex;flex-wrap:wrap;gap:3px;padding-bottom:10px;border-bottom:1px solid var(--line);}
.robot-expressions button {background:var(--soft);}
.robot-expressions button[aria-pressed=true] {color:var(--goldDeep);background:var(--goldSoft);}
.robot-shortcuts .robot-motion {display:flex;align-items:center;gap:8px;font-size:12px;margin:12px 0 4px;font-weight:500;letter-spacing:0;}
.robot-motion input {width:16px;height:16px;padding:0;flex:none;}
.robot-shortcuts .robot-links {display:grid;gap:3px;border-top:1px solid var(--line);padding-top:8px;margin-top:8px;}
.robot-links button {text-align:left;width:100%;}
@media(max-width:600px) {#fabbot.workbench-robot {width:72px;height:88px;right:4px;bottom:4px;}}

#workbenchRobotPanel.robot-shortcuts {z-index:81;}
