/* Shared portrait artwork; no layout, identity or operational status is inferred here. */
svg.vo-detailed-character{display:block;width:100%;height:auto;overflow:visible}
.vo-detailed-character .vo-character-face,.vo-detailed-character .vo-character-jacket{stroke-linejoin:round}
.vo-detailed-character[data-character-state=moving] .vo-office-avatar-body{animation:vo-detailed-step .33s ease-in-out infinite alternate;transform-origin:45px 90px}
.vo-detailed-character[data-character-state=moving] .vo-office-leg-left{animation:vo-detailed-leg .33s ease-in-out infinite alternate;transform-origin:35px 76px}
.vo-detailed-character[data-character-state=moving] .vo-office-leg-right{animation:vo-detailed-leg .33s ease-in-out infinite alternate-reverse;transform-origin:54px 76px}
.vo-detailed-character[data-character-state=failed] .vo-office-avatar-body,.vo-detailed-character[data-character-state=blocked] .vo-office-avatar-body,.vo-detailed-character[data-character-state=failed] .vo-office-leg,.vo-detailed-character[data-character-state=blocked] .vo-office-leg{animation:none!important;transition:none!important}
@keyframes vo-detailed-step{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-3px) rotate(2deg)}}
@keyframes vo-detailed-leg{from{transform:rotate(-10deg)}to{transform:rotate(10deg)}}
@media(prefers-reduced-motion:reduce){.vo-detailed-character,.vo-detailed-character .vo-office-avatar-body,.vo-detailed-character .vo-office-leg{animation:none!important;transition:none!important}}
/* Identity is explicit and independent of activity/presence colors. */
#virtual-office .vo-identity-badge{display:inline-flex!important;align-items:center;justify-content:center;gap:3px;width:auto!important;max-width:none!important;padding:1px 4px!important;border:1px solid var(--adm-border,#82949f)!important;border-radius:3px;background:var(--adm-surface,#fff)!important;color:var(--adm-text,#263238)!important;font-size:9px!important;font-weight:700;line-height:1.4;white-space:nowrap;vertical-align:middle;box-sizing:border-box}
#virtual-office .vo-identity-badge>span{display:inline!important;background:transparent!important;color:inherit!important;width:auto!important;height:auto!important;font-size:inherit!important;padding:0!important;border:0!important}
#virtual-office .pr-person>.vo-identity-badge,#virtual-office .ow-office-human>.vo-identity-badge{position:relative;margin:2px auto 0}
#virtual-office .bld-person>.vo-identity-badge{margin-top:2px}
/* Keep identity badges clear of the name and the existing activity indicators. */
body[data-office-mode=live] #virtual-office .ow-office-human>.vo-identity-badge{background:var(--adm-surface,#fff)!important;color:var(--adm-text,#263238)!important}
#virtual-office .bld-person>.vo-identity-badge{position:absolute;top:0;left:100%;margin:0}
#virtual-office .pr-person>.vo-identity-badge{position:absolute;top:calc(100% + 28px);left:50%;transform:translateX(-50%);margin:0}
body[data-office-mode=live] #virtual-office .bld-person>strong{max-width:110px}
body[data-office-mode=live] #virtual-office .bld-person>strong>.vo-identity-badge{border:0!important;padding:0 2px 0 0!important;background:transparent!important;color:inherit!important}

/* Operational artwork is independent of placement, identity and appearance. */
.vo-character-work-kit{display:none;pointer-events:none}
.vo-group-agent-portrait{position:relative}
.vo-group-agent-portrait>[data-agent-head]{position:absolute;left:50%;top:3%;width:0;height:0;pointer-events:none}
[data-group-agent][data-work-state=working] .vo-character-work-kit{display:inline}
[data-group-agent][data-work-state=working] .vo-character-working-hands{animation:vo-character-type .42s steps(2,end) infinite;transform-box:fill-box;transform-origin:center}
[data-group-agent][data-work-state=working] .vo-character-arm{opacity:.35}
[data-group-agent][data-work-state=starting] .vo-group-agent-portrait{opacity:.75}
[data-activity-hidden=true] .vo-character-working-hands{animation-play-state:paused!important}
@keyframes vo-character-type{50%{transform:translateY(-1.5px)}}
@media(prefers-reduced-motion:reduce){.vo-character-working-hands{animation:none!important}}
